JQuery, удалить элемент из строки

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

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

и я хочу удалить из него элемент h1. Ive попытался:

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

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

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

и

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

и

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

и т.д. и т.д.

Любые идеи?

Ответы

Ответ 1

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

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/