簡體   English   中英

如何在迭代jquery中的每個對象中添加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但這會$.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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM