我怎么能用jquery获得所有“rt_XX”? 我不知道:/ ..希望有人可以帮助我。
$("body").data('conf_pkc', 'normal');
$("body").data('conf_sst', '0');
$("body").data("rt_01", { tw:'k25', title:'Bernd', descr:'man' });
$("body").data("rt_12", { tw:'k115', title:'Hugo', descr:'man' });
$("body").data("rt_55", { tw:'k25', title:'Jan', descr:'man' });
/*
$.each( XXXXXXXXXXXX , function(k, v){
var rt_tw = $('body').data('rt_01').tw;
var rt_tw = $('body').data('rt_01').tw;
$('#d1').append('rt_tw -> '+rt_tw+'<br />');
$('#d1').append('rt_title -> '+title+'<br />');
$('#d1').append('rt_descr -> '+descr+'<br />');
});
*/
http://www.jsfiddle.net/V9Euk/543/
提前致谢。 彼得
答案 0 :(得分:4)
如果你正在使用jQuery 1.4+,你应该能够做到这样的事情:
var data = $("body").data();
for (p in data) {
if (p.substring(0,3) == "rt_") {
var x = data[p];
alert(x.tw);
alert(x.title);
alert(x.descr);
}
}
刚刚在您的链接上测试了这个。按预期工作!
祝你好运!答案 1 :(得分:1)
由于只有一个<body>
,所以绝对不需要将数据绑定到它(除非某些第三方小部件/插件正在使用数据)。
所有数据都可以保存在某个全局配置对象甚至全局变量中 - 要么优于$('body').data('foo')
的开销。
怎么样:
var rt = []; // An array
rt[12] = {...};
rt[55] = {...};
注意:您可能希望使用对象({}
)而不是数组 - 在循环时,对象对于稀疏数组值会更友好。
答案 2 :(得分:1)
$("body").data('conf_pkc', 'normal');
$("body").data('conf_sst', '0');
$("body").data("rt_01", { tw:'k25', title:'Bernd', descr:'man' });
$("body").data("rt_12", { tw:'k115', title:'Hugo', descr:'man' });
$("body").data("rt_55", { tw:'k25', title:'Jan', descr:'man' });
var b = $('body');
var data = b.data();
var arey = [];
for(var i in data) {
if(i.match(/rt_?\d{2}/) ) {
arey.push(i);
}
}
$.each(arey, function( index, val ) {
var item = $('body').data( val )
for(var i in item ) {
(function(t) {
console.log(val + ' => '+ t+ ' : ' +item[t]);
})(i);
}
});
在firebug上测试的代码,工作正常=)
答案 3 :(得分:-1)
试试这个:
value = jQuery.data($("body").find("xxx")[0], "rtxx)");
如果不使用[0],则需要遍历元素。这只是为了让你前进。