<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
$(function() {
var divs = $('#divId div');
$.each(divs, function(i, dom) {
alert($(dom).html());
});
//$('#divId').append($('#divId').find('div')[0]);
$($('#divId').find('div')).remove();
//var divs = $('#divId div');
$.each(divs, function(i, dom) {
alert($(dom).html());
});
});
</script>
</head><body>
<div id='divId'>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
</body>
</html>第一次把div id 为divId内的div保存在了divs里面了
一次循环输出div里面内容
第二次把divId里面的div给删除了,dom里面不存在了
那么divs的属性0,1,2,3分别指向的dom对象应该不存在了,为什么第二次还输出内容啊?
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
<script>
$(function() {
var divs = $('#divId div');
$.each(divs, function(i, dom) {
alert($(dom).html());
});
//$('#divId').append($('#divId').find('div')[0]);
$($('#divId').find('div')).remove();
//var divs = $('#divId div');
$.each(divs, function(i, dom) {
alert($(dom).html());
});
});
</script>
</head><body>
<div id='divId'>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
</div>
</body>
</html>第一次把div id 为divId内的div保存在了divs里面了
一次循环输出div里面内容
第二次把divId里面的div给删除了,dom里面不存在了
那么divs的属性0,1,2,3分别指向的dom对象应该不存在了,为什么第二次还输出内容啊?
$('#divId div').each(function(i, dom) {
alert($(dom).html());
});
就没有了。
divt : {
span : 'spantext',
h1 : 'h1text'
}
}
var $tem = domtree.divt.span;
delete domtree.divt.span;
var $a = domtree;
alert($tem);
楼主这样试试?$(function() {
$('#divId div').each(divs, function(i, dom) {
alert($(dom).html());
});
$('#divId').find('div').remove();
$('#divId div').each(divs, function(i, dom) {
alert($(dom).html());
});
});
jQuery的remove,用的是DOM里的removeChild方法,只是删除掉parent对childNode的引用,然后LZ的代码已经保留了这些Node的引用,获取innerHTML仍然可以顺利返回。
对象没有删除,只是把引用对象的指针置成空了。
jQuery的remove,用的是DOM里的removeChild方法,只是删除掉parent对childNode的引用,然后LZ的代码已经保留了这些Node的引用,获取innerHTML仍然可以顺利返回。
对象没有删除,只是把引用对象的指针置成空了。
$(function() {
var dis = document.getElementById('di');
alert(dis.innerHTML);
document.getElementById('divId').removeChild(document.getElementById('di'));
//dis = null;
alert('-' + document.getElementById('di'));
alert(dis.innerHTML);
});
经过初步思考,有可能remove掉的只是dom树中对象,但是由于还有引用指向了对象,所有对象还存在于内存中
<div id='di'>sfsfsf</div>
</div>