【问题标题】:Read data -attribute as variable读取数据-属性作为变量
【发布时间】:2014-01-21 12:12:55
【问题描述】:

我有这些带有数据属性的 HTML 选择框。现在,当有人单击其中一个框时,我希望 Jquery 读出数据属性并将其用作变量。在池中加 1 或减 1。但是我收到了一个 NaN 错误。有什么解决这个问题的想法吗?提前致谢!

HTML:

<label><input type="checkbox" class="selectable one" data="one" />Antwoord 1</label><br />
<label><input type="checkbox" class="selectable two" data="two" />Antwoord 2</label><br />

查询:

one = 0;
two = 0;

$('.selectable').on('click', function(){
    // tell me what pool you are
var thispool = $(this).attr("data");
    // you are now activated
$(this).toggleClass('activated');
    //add +1 if activated, else -1
if ($(this).hasClass('activated')){thispool++;}
else {thispool--;}
});

【问题讨论】:

  • 因为做数值运算的不是数值
  • @Satpal 看看它的值是one 而不是1

标签: jquery html variables pool


【解决方案1】:

您需要将数值分配给data,即1 而不是one,并且两者必须是2 才能应用递增或递减运算符。

<label><input type="checkbox" class="selectable one" data="1" />Antwoord 1</label><br />
<label><input type="checkbox" class="selectable two" data="1" />Antwoord 2</label><br />

【讨论】:

    【解决方案2】:

    您可以使用类似的另一个变量来引用变量,而是可以使用下面给出的对象

    var counter = {
        one: 0,
        two: 0
    }
    
    $('.selectable').on('click', function () {
        // tell me what pool you are
        var thispool = $(this).attr("data");
        // you are now activated
        $(this).toggleClass('activated');
        //add +1 if activated, else -1
        if ($(this).hasClass('activated')) {
            counter[thispool]++;
        } else {
            counter[thispool]--;
        }
    });
    

    演示:Fiddle

    【讨论】:

    • 谢谢,这确实是我要找的!
    • 如果 HTML 标签上有多个数据属性怎么办
    猜你喜欢
    • 2015-03-02
    • 2021-03-14
    • 2019-12-21
    • 2017-04-12
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 2021-12-07
    相关资源
    最近更新 更多