jQuery通过data()对象循环
是否有可能循环访问data()
对象?
假设这是我的代码:
$('#mydiv').data('bar','lorem');
$('#mydiv').data('foo','ipsum');
$('#mydiv').data('cam','dolores');
我如何循环浏览? each()
可以用于这个吗?
jQuery将所有数据信息存储在jQuery.cache内部变量中。 使用这个简单但有用的插件可以获取与特定对象相关的所有数据:
jQuery.fn.allData = function() {
var intID = jQuery.data(this.get(0));
return(jQuery.cache[intID]);
};
有了这个,你可以这样做:
$('#myelement').data('test1','yay1')
.data('test2','yay2')
.data('test3','yay3');
$.each($('#myelement').allData(), function(key, value) {
alert(key + "=" + value);
});
你可以使用亚光B的建议,但这是如何与你现在拥有的东西做到这一点。
$.each($.data(this), function(i, e) {
alert('name='+ i + ' value=' +e);
});
这将迭代'this'元素的数据对象中的每个属性。
我不认为有任何函数可以为您提供已添加data()
函数的所有数据的“关键”,而是为什么不将所有数据都放入函数的对象/地图?
像这样的东西:
var container = new Object();
container.bar = "lorem";
container.foo = "ipsum";
container.cam = "dolores";
$("mydiv").data("container", container);
然后当你想读取数据/遍历它时:
var blah = $("mydiv").data("container");
for(key in blah) {
var value = blah[key];
//do whatever you want with the data, such as:
console.log("The value of ", key, " is ", value);
}
链接地址: http://www.djcxy.com/p/40675.html
上一篇: jQuery loop through data() object
下一篇: What's the difference between Javascript Object and JSON object