2013-05-16 13 views
7

Così ho preso il seguente codice HTML:Come rimuovere il testo tra due elementi con 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> 

Purtroppo questo è generata da un'estensione di Plone che è stato biforcuta e non ho la possibilità di cambiare l'output. L'elenco avrà una quantità diversa di elementi su pagine diverse.

Tutto ciò che devo fare è rimuovere il taglio tra gli elementi della lista. Fino ad ora non sono riuscito a trovare una buona soluzione.

Esiste una soluzione semplice e potente per fare ciò con Javascript o jQuery?

risposta

13

Usa .contents() e .filter() per filtrare tutti i nodi successivi (nodeType == 3) poi rimuoverli utilizzando .remove()

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

Demo: Fiddle

+0

questo è il bel tentativo – Ruju

+0

Wow! Molte grazie! Non ho davvero un'idea del perché funzioni, ma lo fa. :) – jurihandl

+0

@jurihandl leggi i documenti collegati, ti verrà un'idea –

0

Prova:

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

Strano come \ non veniva mostrato senza il formato del codice. –

0

assegnare l'output in una stringa chiamata var outPut, quindi

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

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