簡體   English   中英

jQuery append()無法正常工作

[英]Jquery append() isn't working

我有這個<ul>

<ul id="select_opts" class="bullet-list" style="margin-left:15px;"></ul>

此javascript代碼旨在通過JSON對象並將選項添加到UL:

$.each(q.opts, function(i,o)
{                        
    var str='';
    str+="<li id='li_" + i + "'><input type='text' id='opt_" + i + "' value='" + o.option + "'>";
    str+=" (<a href='javascript:delOpt(" + i + ");'>Delete</a>) </li>";
    $("#select_opts").append(str);

});

如果我執行console.log(),則可以看到循環正在工作。 如果我做:

console.log($("#select_opts").html());

它顯示了按預期更新的HTML。 但是,在瀏覽器窗口中,UL顯示為空!

我究竟做錯了什么?

$("select_opts").append(str);

應該

$("#select_opts").append(str);

您通過ID引用對象,因此錯過了#

$.each(q.opts, function(i,o)
{                        
    var str='';
    str+="<li id='li_" + i + "'><input type='text' id='opt_" + i + "' value='" + o.option + "'>";
    str+=" (<a href='javascript:delOpt(" + i + ");'>Delete</a>) </li>";
    $("#select_opts").append(str);
   //  ^
}

這是錯字嗎?:

$("select_opts").append(str);

你的意思是?:

$("#select_opts").append(str);

更新:

嘗試這個:

$.each(q.opts, function(i, o) {
    var li = $('<li>').attr('id', 'li_' + i);
    var in = $('<input>').attr('type', 'text').attr('id', 'opt_' + i).val(o.option);
    var aa = $('<a>').attr('href', 'javascript:delOpt(' + i + ');').text('Delete');
    li.append(in).append(aa)
    $("#select_opts").append(li);
});

我真的看不到有什么問題,但是可以嘗試一下,只是看看它是否有效...

$(str).appendTo("#select_opts");

兩者都應該起作用。

輸入標簽應該關閉-否則,如果在Internet Explorer的append()中使用無效的html時,div不會放入DOM樹中,因此以后無法使用jQuery訪問它。

我以為input需要適當地自動關閉。

我發現了該錯誤,當我單擊某個按鈕時,代碼的另一部分正在清空<ul>

暫無
暫無

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

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