Атрибут Jquery html: Как исключить html дочернего элемента из html этого элемента - PullRequest
0 голосов
/ 10 ноября 2009

Фрагмент кода:

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

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

</div

Как я могу получить только "<p>some text</p>"?

Ответы [ 4 ]

0 голосов
/ 13 августа 2012

Я стараюсь избегать псевдоселекторов, таких как :first-child :parent для :nth child, потому что IE 7 не распознает его.

0 голосов
/ 10 ноября 2009

Использование 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-код.

По сути, замена HTML внутри div при сохранении дочернего элемента - сложная задача, потому что куда вы помещаете новый HTML? Перед этим? После? Вокруг? Вы, вероятно, должны быть более конкретны об этом.

0 голосов
/ 10 ноября 2009

$('#sometext > p') должен сделать трюк.

0 голосов
/ 10 ноября 2009
$('#some_text:first-child').html(); //contains your text

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