JQuery, удалить элемент из строки - PullRequest
19 голосов
/ 26 июля 2010

У меня есть строка:

var s = '<h1>heading</h1><p>para</p>';

и я хочу удалить из него элемент h1. Я попробовал:

$(s).remove('h1');

но s все еще содержит элемент h1 Я также попробовал:

s = $(s).remove('h1');

и

$('h1', s).remove();

и

$('h1', $(s)).remove();

и т. Д. И т. Д.

Есть идеи?

1 Ответ

32 голосов
/ 26 июля 2010

Обновление : Я вижу, вы только что изменили вопрос. Теперь решение будет таким:

var s = '<h1>heading</h1><p>para</p>';

var $s = $(s).not('h1');

$('body').append($s);​

Попробуйте: http://jsfiddle.net/q9crX/19/

Поскольку теперь у вас есть более одного элемента «верхнего уровня» в объекте jQuery, вы можете использовать .not() (что в принципе противоположно .filter()), чтобы удалить h1.

Это было бы то же самое, что и $(s).filter(':not(h1)');


Оригинальный ответ

$(s).find('h1').remove();

Итак, если вы хотите добавить результат к body, вы можете сделать:

var s = '<div><h1>heading</h1><p>para</p></div>';

var $s = $(s).find('h1').remove().end();

$('body').append($s);​

Попробуйте: http://jsfiddle.net/q9crX/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...