如果当前文本数据=任何其他文本数据然后...?

时间:2013-07-05 10:11:00

标签: javascript jquery

我正在尝试检查当前点击的文本是否与页面上的任何其他文本具有相同的数据,因为下面的文本被放在页面上两次。单击文本后,它将添加一个类(此位有效),如果它与页面上的任何其他文本具有相同的数据,则该文本也将被赋予新类。

<span class="AJAXPagerSpan" data-num="6">6</span>
<span class="AJAXPagerSpan" data-num="12">12</span>
<span class="AJAXPagerSpan" data-num="24">24</span>  



  $(".AJAXPagerSpan").click(function() {
        <%= this.ID %>_Pager.ChangeResultsPerPage($(this).html()); 


       // Check if any of its siblings are part of the "highlightclass" and remove them from it
        $(this).siblings().removeClass("highlightclass");
        if ($(this).data() == $(this).siblings().data()) {
        $(this).addClass("highlightclass");
        };
       // Add it to the highlightclass
        $(this).addClass("highlightclass");

  });

1 个答案:

答案 0 :(得分:0)

$(".AJAXPagerSpan").click(function () {
    $(".highlightclass").removeClass("highlightclass");
    $("span[data-num=" + $(this).data("num") + "]").addClass("highlightclass");
});

您的代码存在以下问题:

  1. 您错过了.data()的参数来指定数据的名称。

  2. 您在if条件附近缺少括号。

  3. 您需要分别测试每个兄弟姐妹。与集合一起使用时,.data()只返回集合的第一个元素的值。您可以使用.each()循环。

  4. 我没有使用循环,而是使用了与数据属性匹配的选择器。

    FIDDLE