如何使用按钮的“ OnClick”功能切换名称?

时间:2020-09-29 02:57:23

标签: javascript html jquery toggle

如果单击按钮时“ data-count-type”值为0,我想将“ data-charactercount”值写入按钮。

再次单击按钮时,如果“ data-count-type”值为1,我想将“ data-wordcount”值写入按钮。

总而言之,我希望每次单击按钮时2个值之间的按钮的文本部分都改变。 (切换)

代码中有一点错误,因此无法正常工作。我该怎么办?

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button type="button" data-count-type="0" data-wordcount="15 Words" data-charactercount="50 Character" onclick="( (this.getAttribute('data-count-type')==0) ? this.innerText = this.getAttribute('data-wordcount'), this.setAttribute('data-count-type',1)  : this.getAttribute('data-charactercount'), this.setAttribute('data-count-type',0) )">BUTTON</button>

4 个答案:

答案 0 :(得分:0)

使用jQuery,您可以执行以下操作:

$(function() {
   $('button').on('click', function() {
      var countType = $(this).data('countType');
      var wordCount = $(this).data('wordcount');
      var charCount = $(this).data('charactercount');
      var result = countType === 0
        ? wordCount 
        : charCount;
      $(this).data('countType', ++countType).text(result);
   });
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" data-count-type="0" data-wordcount="15 Words" data-charactercount="50 Character">BUTTON</button>

或内联:

<button type="button" data-count-type="0" data-wordcount="15 Words" data-charactercount="50 Character" 
onclick="
this.innerText = (this.dataset.countType==0) 
    ? this.dataset.wordcount 
    : this.dataset.charactercount;
this.dataset.countType = ++this.dataset.countType">BUTTON</button>

答案 1 :(得分:0)

不能100%确定您的要求,但我猜是这样的:

Dim myArray = New Integer()  {1,2,1,3,3,1,2,1,5,1}
Public Sub Main() 
 Dim mayor As Integer = 0
Dim i As Integer = 0
Do While (i < myArray.Length)
    If ((myArray(i) < 1)  _
                OrElse (myArray(i) > 100)) Then
        Console.WriteLine("enteros fuera del rango de 1 a 100")
        Exit For
    End If
    
    If (i > mayor) Then
        mayor = myArray(i)
    End If
    
    i = (i + 1)
Loop

If (mayor > 0) Then
    Console.WriteLine(mayor)
End If
End Sub
function handleClick (e) {
  const target = $(e.target)
  
  if (Boolean(target.data('count-type'))) {
    target.text(target.data('wordcount'))
  } else {
    target.text(target.data('charactercount'))
  }
  
  target.data('count-type', !Boolean(target.data('count-type')))
}


这是如何工作的

我们创建了一个名为<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <button type="button" data-count-type="0" data-wordcount="15 Words" data-charactercount="50 Character" onclick="handleClick(event)">BUTTON</button>的函数,该函数解析参数handleClick,该参数引用了click事件,我们还有一个名为e的常量变量,其值为target,这是目标元素(带有click事件的元素)。

然后我们有一个$(e.target)语句,用于检查if数据属性的值,并将条件的数据类型更改为布尔值(如果为true),则将目标元素的内部文本设置为如果条件为count-type,则将data-wordcount的值设置为false的内部文本。{p1

然后,我们将target设置为非值(例如,如果data-charactercount = count-type,如果true = false)。

false中,我们有一个名为true的属性,该属性设置为我们声明的函数HTML,并且正在将onclick解析为函数。

答案 2 :(得分:0)

根据我的最佳理解,

您正在尝试创建一个按钮,您将在其中访问数据计数类型的值。如果数据计数类型为0,则按钮应使用 data-charactercount 的值更改内部文本,如果 data-count-type >为1,则按钮应使用 data-wordcount

的值更改内部文本

这是一个使用内联JS执行上述行为的代码段。

注意:为了便于理解,我在下面的代码段中有2个按钮,其中1个按钮设置为 data-count-type = 0 ,第二个按钮设置为< strong>数据计数类型= 1 。但是两者的内联脚本代码是相同的。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<button type="button" data-count-type="1" data-wordcount="15 Words" data-charactercount="50 Character" onclick="
    if(this.getAttribute('data-count-type')==0){
        this.innerText = this.getAttribute('data-charactercount');
    } else if (this.getAttribute('data-count-type')==1){
        this.innerText = this.getAttribute('data-wordcount');
    }else{
    }
">BUTTON with data-count-type value 1</button>

<br>
<br>

<button type="button" data-count-type="0" data-wordcount="15 Words" data-charactercount="50 Character" onclick="
    if(this.getAttribute('data-count-type')==0){
        this.innerText = this.getAttribute('data-charactercount');
    } else if (this.getAttribute('data-count-type')==1){
        this.innerText = this.getAttribute('data-wordcount');
    }else{
    }
">BUTTON with data-count-type value 0</button>

答案 3 :(得分:0)

<button type="button" data-count-type="0" data-wordcount="15 Words" data-charactercount="50 Character" onclick="0==this.getAttribute('data-count-type')?this.innerText=this.getAttribute('data-wordcount'):this.innerText=this.getAttribute('data-charactercount'),0==this.getAttribute('data-count-type')?this.setAttribute('data-count-type',1):this.setAttribute('data-count-type',0);">BUTTON</button>