Ответ 1
Это должно работать.
$("li").contents().filter(function(){ return this.nodeType != 1; }).remove();
или явно указывая текстовые узлы
$("li").contents().filter(function(){ return this.nodeType == 3; }).remove();
Смотрите fiddle.
У меня есть script, который создает список элементов со структурой вроде этого:
<li>
<div>Some stuff</div>
<a href="#" onclick="location.href='http://www.mysite.com/'; return false;">New Item</a>
(1 vote)
</li>
Мне было интересно, есть ли способ удалить все за пределами тегов <div>
и <a>
, в этом случае строку (1 голос), с jQuery или обычный javascript.
Спасибо заранее!
Это должно работать.
$("li").contents().filter(function(){ return this.nodeType != 1; }).remove();
или явно указывая текстовые узлы
$("li").contents().filter(function(){ return this.nodeType == 3; }).remove();
Смотрите fiddle.
Использовать jquery nextAll
$('li').not('div,a').text('')
Попробуйте это, непроверенный
Edit
$('li').contents().filter(function(){ return !(this.tagName == 'DIV'
|| this.tagName == 'A');}).remove();
$('li').html($(this).children())
Вы можете попробовать это, он должен работать. Чисто и просто.