我有一个div <div id="masterdiv">,它有几个子<div>s。

例子:

<div id="masterdiv">
  <div id="childdiv1" />
  <div id="childdiv2" />
  <div id="childdiv3" />
</div>

如何使用jQuery清除所有子<div>的内容里面的主<div> ?


当前回答

使用jQuery的CSS选择器语法选择id为masterdiv的元素中的所有div元素。然后调用empty()来清除内容。

$('#masterdiv div').empty();

使用text(")或html(")将导致进行一些字符串解析,在使用DOM时,这通常是一个坏主意。尽可能尝试使用不涉及DOM对象的字符串表示的DOM操作方法。

其他回答

使用jQuery的CSS选择器语法选择id为masterdiv的元素中的所有div元素。然后调用empty()来清除内容。

$('#masterdiv div').empty();

使用text(")或html(")将导致进行一些字符串解析,在使用DOM时,这通常是一个坏主意。尽可能尝试使用不涉及DOM对象的字符串表示的DOM操作方法。

jQuery的empty()函数就是这样做的:

$('#masterdiv').empty();

清除主div。

$('#masterdiv div').empty();

清除所有子div,但保留主div完整。

如果masterdiv中的所有div都需要被清除,它是这样的。

$('#masterdiv div').html('');

否则,您需要迭代#masterdiv的所有子div,并检查id是否以childdiv开头。

$('#masterdiv div').each(
    function(element){
        if(element.attr('id').substr(0, 8) == "childdiv")
        {
            element.html('');
        }
    }
 );

当你使用任何服务或数据库通过id将数据追加到div中时,首先尝试它是空的,就像这样:

var json = jsonParse(data.d);
$('#divname').empty();
$("#masterdiv div[id^='childdiv']").each(function(el){$(el).empty();});

or

$("#masterdiv").find("div[id^='childdiv']").each(function(el){$(el).empty();});