如何在每次迭代中添加DOM对象
How to add DOM objects in each in iteration jquery
我刚刚从最佳实践中学到,这样做要好得多
var check_icon = $('<i />', {class: 'check icon'});
而不是
var check_icon = '<i class="check icon"></i>
我需要做的是创建这些列表,因此我使用每个到我的数据和什么使用check_icon在每个前面。像这样:
var all = '';
$.each(json, function(id, val) {
all += checkicon + val;
});
$('#output').html(all);
我的问题是它不起作用。它没有给我HTML代码,而是返回:
[object Object]Carl[object Object]John
我知道我可以在$.each
中附加数据,但这是相当CPU密集型的,并且违背了最佳实践。
我已经尝试了几种方法来让它工作(以不同的方式转换为HTML/字符串,但没有任何工作。我要么得到[object Object]
要么得到null)
您遇到的问题是您混淆了jQuery对象和HTML字符串。要知道你想做什么有点困难,但我认为这可能对你有用。
var output = $("#output");
$.each(json, function(id, val) {
var check_icon = $("<i>").addClass("check icon");
check_icon.html(val);
output.append(check_icon);
});
我刚刚写了一个函数,可以用来动态生成各种DOM元素
function makeElement(element, options) {
var $element = document.createElement(element);
$.each(options, function (key, value) {
$element.setAttribute(key, value);
});
return $element;
}
,你可以随时调用它。
var checkIcon = makeElement('i', {class: 'check icon'});
$('parent-container').appendChild(checkIcon);
相关文章:
- 如何判断何时将dom节点添加到文档中
- 向动态生成的DOM添加Angular自定义指令
- 如果移除并重新添加DOM元素,则ng单击绑定丢失
- 使用 Knockout 动态添加 dom 元素
- jquery使用$.on来添加dom元素
- 如何在 HTML 结构中添加 DOM 模型
- 如何强制.prepend()和.append()添加DOM对象,而不是文本
- AngularJS添加DOM元素
- 添加DOM视图太慢了,需要一种更好的方法来缓存一次视图并重用它供以后使用
- 带有模板的Dojo小部件,在小部件加载时更改模板(添加DOM元素)
- 添加 DOM 元素,什么是正确的方法
- 如何在画布上添加DOM对象
- 如何在每次迭代中添加DOM对象
- jQuery show()不是一个函数-用于添加DOM元素
- 只能添加dom元素,但不能删除它们
- 在单击按钮时动态添加DOM元素
- 添加 DOM 元素时获取通知
- 如何在React中添加dom
- 如何在Div背景中添加DOM图像对象
- 如何在按钮中添加DOM附加的功能