首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将数据设置为新元素

如何将数据设置为新元素
EN

Stack Overflow用户
提问于 2014-09-22 20:55:32
回答 2查看 77关注 0票数 0

如果使用$.each和string变量,如何向新元素添加数据?

如果我使用数据属性,我知道该如何做。

代码语言:javascript
运行
复制
var str = '';
$.each(data.list, function(i,r){
    str += '<div data-one="' + r.one + '">Element</div>';
})
$('body').append(str);

如果我想在这种情况下使用$.data,该怎么办?

代码语言:javascript
运行
复制
$.data(div, "data", {
  one: r.one,
  two: r.two
})

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-23 09:06:54

如果必须使用长字符串创建所有div,则使用第二个查找div并设置数据:

代码语言:javascript
运行
复制
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对象追加到主体:

代码语言:javascript
运行
复制
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(...)替换为:

代码语言:javascript
运行
复制
$.data(d[0], 'data', {one: r.one, two: r.two});
票数 0
EN

Stack Overflow用户

发布于 2014-09-22 23:21:17

要使用jquery数据,您不能在字符串中执行div,您可以在每个函数中这样做。

Var a=[];a.push($('div',{text:'element'} ).data({1:1,2:2})

然后附加a。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25982968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档