jQuery选择器,用于通过比较其两个数据属性来选择元素

时间:2013-11-12 08:55:53

标签: javascript jquery jquery-selectors

我想通过比较它的两个数据属性来选择一个元素,如果它们相同或不相同。是否可能,如果可以,怎么样?例如,我需要选择一个li

<li data-prevstate="true" data-currstate="false">

以前的状态和当前状态相等。

3 个答案:

答案 0 :(得分:3)

<li data-prevstate="true" data-currstate="false">
<li data-prevstate="true" data-currstate="false">
<li data-prevstate="true" data-currstate="true">
<li data-prevstate="true" data-currstate="false">
<li data-prevstate="true" data-currstate="true">

可能是这个。?

 $('li').filter(function() { 
        return $(this).data('prevstate') == $(this).data('currstate'); 
 });

这将从上面给出的元素集中选择两个元素。

答案 1 :(得分:2)

可能是这个吗?

var selected = '';
$('li').each(function() {
  if($(this).attr('data-prevstate') == $(this).attr('data-currstate')) {
  selected = $(this);
}
});

现在,您可以使用selected

执行任何操作

或按照建议:

var selected = '';
$('li').each(function() {
  if($(this).data('prevstate') == $(this).data('currstate')) {
  selected = $(this);
}
});

答案 2 :(得分:1)

<ul>
    <li data-prev="abc" data-curr="abc">Lorem Ipsum</li>
    <li data-prev="abc" data-curr="abc">Lorem Ipsum</li>
    <li data-prev="abc" data-curr="abc">Lorem Ipsum</li>
</ul>

<script>
     $(document).ready( function(){
       var matches = [];
       $('li').each( function( i, o ){
           $o = $(o);
           if( $o.data('prev') == $o.data('curr') ) 
               matches.push($o);
       });
       console.log(matches);
     });
</script>

将获取当前和以前数据匹配的所有li项目