如何删除层次结构中的第一级元素?

时间:2009-09-01 11:38:07

标签: asp.net jquery

我有一个用ASP生成的数据表,但不幸的是我用来滚动结果的jQuery脚本需要布局如下:

<div class="itemContainer">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>

ASP生成的内容如下所示:

<div class="itemContainer">
<div class="item"><span></span><br /></div>
<span></span>
<br />
<div class="item"><span></span><br /></div>
<span></span>
<br />
<div class="item"><span></span><br /></div>
<span></span>
<br />
</div>

问题是div还包含span和br元素,因此只需查找这些元素并使用.remove()方法不起作用。我需要删除所有span和br元素,但只删除'itemContainer'div的直接祖先。 我希望很清楚,任何帮助都会非常感激。或者,如果有办法让ASP生成只有div的数据列表,那也会有所帮助。 谢谢!

3 个答案:

答案 0 :(得分:1)

这样可行。

$(document).ready(function() {
    $(".itemContainer").find(">span, >br").remove();
});

但正如我上面的评论,您可能不需要先删除这些元素。

答案 1 :(得分:0)

您可以使用类似

的内容从<div class="item">遍历到下一个<div class="item">
// move from first div with class "item" to second
$("div.item:first").nextAll("div.item"); 

但是,如果您确实需要立即移除<span><br>

$("div.itemContainer > span, div.itemContainer > br").remove();

$("div.itemContainer").children("span,br").remove();

将仅删除<span>

的直接<br><div class="itemContainer">子项

答案 2 :(得分:-1)

这应该有效:

var e = $("div.itemContainer div.item:first");
e.next().remove(); // remove span
e.next().remove(); // remove br
e.remove(); // remove the div

完全未经测试,您的猫可能在测试此代码时被煮沸。请谨慎使用。