2013-05-16 4 views
7

Так что я получил следующий HTML:Как удалить текст между двумя элементами с JQuery

<ul> 
    <li><a href="#">test</a></li> 
/
    <li><a href="#">test</a></li> 
/
    <li><a href="#">test</a></li> 
/
    <li><a href="#">test</a></li> 
<ul> 

К сожалению, это порождается расширением Plone, который был раздвоенным, и я не имею возможность изменить выход. В списке будет разное количество элементов на разных страницах.

Все, что мне нужно сделать, это удалить разреженные между элементами списка. До сих пор я не мог найти подходящее решение.

Есть ли простое мощное решение для этого с помощью Javascript или jQuery?

ответ

13

Использование .contents() и .filter(), чтобы отфильтровать все следующие узлы (nodeType == 3), а затем удалить их с помощью .remove()

$('ul').contents().filter(function(){ 
    return this.nodeType == 3 
}).remove() 

Демо: Fiddle

+0

Это приятная попытка – Ruju

+0

Ничего себе! Большое спасибо! У меня действительно нет идеи, почему это работает, но это так. :) – jurihandl

+0

@jurihandl прочитал связанные документы, вы получите какую-то идею –

0

Try:

document.getElementsByTagName("ul")[0].textContent.replace(/\//g,"") 
+0

Странно, как \ не показывался без кода. –

0

Присвоить выход в строку, называемую var outPut, затем

outPut.replace('/',''); 

output.replace('a><li','a></li');