Javascript 使用jQuery按属性查找元素
如何查找文档中data num属性大于或等于(例如251)的所有元素?我更喜欢使用jQuery。您希望使用选择器,然后基于值Javascript 使用jQuery按属性查找元素,javascript,jquery,html,Javascript,Jquery,Html,如何查找文档中data num属性大于或等于(例如251)的所有元素?我更喜欢使用jQuery。您希望使用选择器,然后基于值 $('[data-num]').filter(function(){ if (parseInt(this.getAttribute('data-num')) >= 251){ return true; } else{ return false; } }) $('[data-num]').filter(
$('[data-num]').filter(function(){
if (parseInt(this.getAttribute('data-num')) >= 251){
return true;
}
else{
return false;
}
})
$('[data-num]').filter(function(){
return parseInt($(this).data('num'), 10) >= 251;
});
演示:
更新:根据您的评论,如果要更新数据num值,可以执行以下操作:
$('[data-num]').filter(function(){
var num = parseInt($(this).data('num'), 10);
if(num >= 251){
$(this).data('num', num+1);
return true;
}
return false;
});
您希望使用选择器,然后基于该值
$('[data-num]').filter(function(){
return parseInt($(this).data('num'), 10) >= 251;
});
演示:
更新:根据您的评论,如果要更新数据num值,可以执行以下操作:
$('[data-num]').filter(function(){
var num = parseInt($(this).data('num'), 10);
if(num >= 251){
$(this).data('num', num+1);
return true;
}
return false;
});
你的意思是“数据数量属性”而不是“数据数量参数”?你的意思是“数据数量属性”而不是“数据数量参数”?一个问题。。。我能以某种方式增加过滤掉的元素的数据数量吗?我尝试了
attr('data-add'),$(this.data('add')+diff)代码>但它不工作;)很抱歉问了这么一个蹩脚的问题,我对这个完全陌生jQuery@user1559555:检查我的编辑,你可以尝试类似的方法。或者您可以在.filter
之后使用.each
来增加值。不过有一个问题。。。我能以某种方式增加过滤掉的元素的数据数量吗?我尝试了attr('data-add'),$(this.data('add')+diff)代码>但它不工作;)很抱歉问了这么一个蹩脚的问题,我对这个完全陌生jQuery@user1559555:检查我的编辑,你可以尝试类似的方法。或者您可以在.filter
之后使用.each
来增加值。+1我喜欢您使用this.getAttribute()
而不是$(this.data()
,因为这里不需要jQuery,而且原生JS会更快。OP应该知道,$(“[data num]”)
不会很快,因为它必须检查文档中的每个对象。+1我喜欢您使用this.getAttribute()
而不是$(this.data()
,因为这里不需要jQuery,而且原生JS会更快。OP应该知道,$(“[data num]”)
不会很快,因为它必须检查文档中的每个对象。