.remove()不会从dom中删除元素

时间:2014-01-17 07:10:28

标签: jquery

我想使用其ID

从dom中删除元素

HTML

<div id="no-js">
     Sorry for the inconvenience<br/>
     Your browser does not support javascript or it must be  disabled.<br/>
     To access the features of our website<br/><br/>
     Enable your javascript or upgrade to the browser that supports javascript.
</div>

的jQuery

 var x = $("#no-js"); 
 console.log(x.html());
 x.remove(); // does not remove the element from dom why?
 console.log(x.html()); // it displays html content inside it
 console.log(x.length); // results 1 
 x.empty(); // removes the child elements, working as expected
 console.log(x.html()); // html content is empty
 console.log(x.length); // length is 1

.remove()似乎没有按预期工作? 这是小提琴 http://jsfiddle.net/QGsza/14/

4 个答案:

答案 0 :(得分:4)

.remove()从dom中删除了该元素,但变量x仍保留对它的引用,这是x.length返回1的原因

如果再次测试console.log($("#no-js").length),它将触发新的dom搜索并且该元素已被删除时将为0

演示:Fiddle

答案 1 :(得分:0)

你有<div id="no-js">所以,

将此var x = $("#div_no_js");替换为此var x = $("#no_js");

请参阅selectorclass slectorid selector

答案 2 :(得分:0)

您的选择器错误,请更改为$("#no_js")。有关更多信息,请参阅jQuery API

答案 3 :(得分:0)

就像我曾尝试过你的小提琴而且它正在运作

var x = $("#no-js").html();
x.remove();