示例:
<div data-object="{ 'foo' : 123 }"></div>
<div data-object="{ 'foo' : 456 }"></div>
找到foo值为123的div的最快方法是什么?目前我循环遍历div,将字符串化的对象转换为js对象并检查foo值是否等于123?这可以在没有循环的情况下完成吗?感谢
答案 0 :(得分:2)
您可以使用filter()
var divs = $("div").filter(function() {
var data = $.parseJSON($(this).data("object"));
return data.foo == 123;
});
这仍然在内部使用循环。
答案 1 :(得分:1)
使用jquery选择器
function getdiv(id) {
var divs = $('div[data-bh="{"foo":' + id + '}"]');
}
答案 2 :(得分:0)
你不需要parseJson,这应该工作
var divs = $("div").filter(function() {return $(this).data("object").foo == 123;});
阅读结尾以查看更多示例,http://www.elijahmanor.com/2012/03/find-jquery-bug-5-defective-data.html
但正如@Rory所提到的,这确实在内部使用了循环