Jquery html属性:如何从该元素的html中排除元素的子HTML

时间:2009-11-09 23:10:36

标签: jquery html filter selector

代码段:

<div id="some_text">
    <p>some text</p>

    <div id="child">
        <p>some other text</p>
    </div>

</div

我怎样才能获得“<p>some text</p>”?

4 个答案:

答案 0 :(得分:0)

$('#some_text:first-child').html(); //contains your text

$('#some_text:first-child').remove(); //to remove

答案 1 :(得分:0)

使用replaceWith()

$("#some_text > p").replaceWith("some other html");

或者如果您需要更具体:

$("#some_text > p:first-child").replaceWith("some other html");

甚至使用not()

$("#some_text").children().not("#child").replaceWith("some other html");

replaceWith()会将每个匹配的元素替换为特定的HTML,因此如果您匹配的不止一个,您将获得重复的内容。另一种方法是删除它,然后添加所需的HTML。

基本上替换div中的HTML同时维护子元素很难,因为你在哪里放置新的HTML?之前呢?后?周围?你可能需要对此更加具体。

答案 2 :(得分:0)

$('#sometext > p')应该可以解决问题。

答案 3 :(得分:0)

我尽量避免使用:first-child :parent:nth孩子的伪选择器,因为IE 7无法识别它。