我想通过比较它的两个数据属性来选择一个元素,如果它们相同或不相同。是否可能,如果可以,怎么样?例如,我需要选择一个li
<li data-prevstate="true" data-currstate="false">
以前的状态和当前状态相等。
答案 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项目