如何将数据设置为新元素
How to set data to new elements
如果使用$.each
和字符串变量,如何向新元素添加数据?
我知道如何使用数据属性
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
})
谢谢。
如果必须使用长字符串创建所有div,请使用第二个$.each-loop
查找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});
要使用jquery Data,您不能在字符串中执行div,可以在每个函数中执行。
变量a=[];a.push($('div',{text:'element'}).data({one:1,two:2})
然后附加a.
相关文章:
- 触摸移动时切换到新元素
- 将按钮添加到新元素中
- 如何在javascript上向数组的对象添加新元素
- 如果数组仍在执行,async.forEach()将运行我添加到数组中的新元素
- 剑道UI下载列表:如何动态添加新元素
- 在DIV中动态插入HTML并访问新元素
- 使一个新元素在某个时间出现
- 单击不适用于新元素
- 动态添加新元素并更改其内容
- 没有为Ajax添加的新元素注册Jquery事件
- css在新元素上的转换
- 如何在不创建新元素的情况下修改 DOM 元素的位置
- jquery添加新元素
- 如何在遍历表和添加新元素时获得tr的索引
- PNG修复新元素
- 将点击事件绑定到新元素&使得ID'是独一无二的
- 从HTML表单中获取计算得到的JavaScript数据,并将其作为新元素添加到相同的表单操作中以使用PHP保存
- jQuery没有为具有新id的新元素执行代码
- jQuery倒计时-应用于通过AJAX/PHP加载的新元素
- 在元素内部创建新元素