2012-02-20 16 views
7

Come faccio ad avere il testo "là" che viene dopo un tag in un documento HTML:DOM/Javascript: ottenere testo dopo tag

<p><a>hello</a>there</p> 

vedo che c'è un modo per farlo con XPath:

Get text from next tag

ma non sto usando XPath e sto sperando di non dover ricominciare solo per questo. Mi rendo conto che posso ottenere TUTTO il testo all'interno del tag p, ma voglio ottenere solo il testo "lì", così come conoscere la sua relazione con il p e un tag. Non sembra essere il figlio o il fratello di nessuno. (Si può supporre che io possa ottenere uno qualsiasi degli altri elementi/nodi in modo che possa essere relativo a quelli.) Ogni tutorial DOM sembra ignorare il fatto che il testo può verificarsi al di fuori dei tag.

Grazie.

+0

La domanda si è collegato a è usando PHP - stai usando PHP? o solo JavaScript? – ManseUK

+0

solo javascript. Quindi un'altra ragione per cui la risposta non funzionerà! – user984003

risposta

7

Qualcosa come this?

var p = document.getElementsByTagName("p")[0]; 
alert(p.childNodes[1].textContent) 
+0

sì, è davvero così semplice :) "there" è un figlio di P. Per qualche ragione che non funzionava per me. Grazie. – user984003

5

uso questo .. http://jsfiddle.net/2Dxy4/

Questo è il codice HTML -

<p id="there"> 
    <a>hello</a> 
    there 
</p>​ 

Nella tua JS

alert(document.getElementById("there").lastChild.textContent)​ 

o

alert(document.getElementById("there").childNodes[1].textContent)​ 
-1

Dovete ottenere prima l'innerHTML un attributo poi prendere innerHTML totale con l'utilizzo di sottostringa si può avere la vostra parte lì ..

$(document).ready(function() { 
var getA=$("p >a").text(); 
var getA=getA.length; 
var takeTotal=$("p").text(); 
var result=takeTotal.substring(get); 
alert(result); 
}); 
0

Beh, se si utilizza jQuery c'è un modo subdolo per ottenere questo

x = $("<p><a>hello</a>there</p>")
x.contents()[1]

Problemi correlati