JQuery:动态创建的html不响应JQuery函数

时间:2011-12-09 18:43:37

标签: javascript jquery html

我正在使用此代码动态生成div:

// my html string :)
var myString = '<id="newDiv"div> hello </div>';

// html decode the string    
myString = $("<div />").html(myString).text();

// appending the string
$("#parentDiv").append(myString);

它附加正常(它显示在屏幕上)。并且还做$('#newDiv')。长度正确显示值1.然后当我尝试调用remove()对它(或任何函数)如

$('#newDiv').remove()
没有任何反应。发生了什么事?

2 个答案:

答案 0 :(得分:3)

那里有一些额外的工作。并且&lt;id="newDiv"div&gt; hello &lt;/div&gt;实际上是<id="newDiv"div> hello </div>,这对我的理解来说不是正常的HTML。

//here is what I think you wanted:
    $('<div id="newDiv">hello</div>').appendTo("#parentDiv");
    alert($("#newDiv").length);
    $("#newDiv").remove();

编辑 - 解码html文本,然后附加它:

var emptyDivNeverAppendedToDom = $('<div/>');
//per the other so.com question
    var html = emptyDivNeverAppendedToDom.html('&lt;div id="newDiv"&gt; world &lt;/div&gt;').text();
//just being verbose.
    var elem = $(html);
    //the actual work
    elem.appendTo("#parentDiv");
    //elem.remove();

a js fiddle取消注释elem.remove()lin以观察它是否正常工作。

答案 1 :(得分:0)

只要您将ID放在正确的位置,效果就会很好:

var myString = '&lt;div id="newDiv"&gt; hello &lt;/div&gt;';

http://jsfiddle.net/NN9v2/1/