使用选择器再次调用 data() 时,动态创建元素并附加数据的 JQuery 不返回值?
我动态创建一个 div 元素并将 data()
与其关联。当通过选择器再次访问它时,它不会返回数据。作为下面代码片段的结果,我看到第一个警报的数据为“1”,另一个警报的数据为“null”值。有人可以帮忙吗?
var dc = 0;
$("#attachData").click(function () {
dc++;
var newDiv = jQuery('#oldid').clone();
newDiv.attr('id', 'dt'+dc);
jQuery.data(newDiv, "dd", '1')
alert(jQuery.data(newDiv, "dd"));
var divFromSelector = $('#dt'+dc);
alert(jQuery.data(divFromSelector, "dd"));
});
抱歉,我没有将它添加到代码片段中,而是将其附加到树上:
newDiv.attr('id', 'dt'+dc).
appendTo('#workspace-container');
此外,当我尝试使用选择器访问它时,元素会正确返回 - 但找不到数据。
I create a div element dynamically and associate data()
to it. When accessing it again via selector it does not return the data. As result of below snippet I see first alert with data '1' and another with 'null' value. Can someone please help.
var dc = 0;
$("#attachData").click(function () {
dc++;
var newDiv = jQuery('#oldid').clone();
newDiv.attr('id', 'dt'+dc);
jQuery.data(newDiv, "dd", '1')
alert(jQuery.data(newDiv, "dd"));
var divFromSelector = $('#dt'+dc);
alert(jQuery.data(divFromSelector, "dd"));
});
Sorry, I did not add it in the snippet but its attached to the tree:
newDiv.attr('id', 'dt'+dc).
appendTo('#workspace-container');
Also when I try to access it using selector the element is returned correctly - but no data found.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试:
从文档看来,
JQuery.data
方法需要 DOM 元素,而不是 JQuery 对象。将[0]
附加到 JQuery 对象会给出它所包装的 DOM 元素。如果您使用
newDiv.data(...)
和divFromSelector.data(...)
可能会更好。演示此处。
Try:
From the docs it seems that the
JQuery.data
method expects a DOM element, not a JQuery object. Appending[0]
to a JQuery object gives the DOM element it is wrapping.It'd probably be better if you used
newDiv.data(...)
anddivFromSelector.data(...)
.Demo here.
看来您尚未在您访问的 DOM 中附加新节点。 http://api.jquery.com/clone/
It looks like you haven't attached the new node in the DOM your accessing. http://api.jquery.com/clone/