1

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

<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");

  });
4

1 回答 1

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

您的代码存在以下问题:

  1. 您缺少.data()指定数据名称的参数。

  2. 您在条件周围缺少括号if

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

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

小提琴

于 2013-07-05T10:19:30.517 回答