如果使用$.each
和string变量,如何向新元素添加数据?
如果我使用数据属性,我知道该如何做。
var str = '';
$.each(data.list, function(i,r){
str += '<div data-one="' + r.one + '">Element</div>';
})
$('body').append(str);
如果我想在这种情况下使用$.data
,该怎么办?
$.data(div, "data", {
one: r.one,
two: r.two
})
谢谢。
发布于 2014-09-23 09:06:54
如果必须使用长字符串创建所有div,则使用第二个查找div并设置数据:
var str = ''; $.each(/* your code */); $('body').append(str);
// find all divs with a data-one-attribute and iterate over them
$('body div[data-one]').each(function(i, div) {
var d = data.list[i]; // find the associated item of data.list
$.data(div, 'data', {one: d.one, two: d.two}); // set the data on this div
});
一种更短的方法在$.each()
中每一步创建一个真正的div元素,设置它上的数据并将div添加到jQuery对象。然后,将已填充的jQ对象追加到主体:
var divs = $(); // create an empty jQuery object being the container
$.each(data.list, function(i, r) {
var d = $('<div data-one="' + r.one + '">Element</div>'); // create one div-element
// since d is an jQuery object, use d.data() to set the data on it:
d.data('data', {one: r.one, two: r.two});
divs.add(d); // put the div into the container
});
$('body').append(divs); // append the whole container to body
如果您想在第二个解决方案中使用$.data()
,只需将d.data(...)
替换为:
$.data(d[0], 'data', {one: r.one, two: r.two});
发布于 2014-09-22 23:21:17
要使用jquery数据,您不能在字符串中执行div,您可以在每个函数中这样做。
Var a=[];a.push($('div',{text:'element'} ).data({1:1,2:2})
然后附加a。
https://stackoverflow.com/questions/25982968
复制相似问题