2012-02-20 14 views
7

Jak mogę uzyskać tekst „tam”, który przychodzi po tagu w dokumencie HTML:DOM/Javascript: uzyskać tekst po znaczniku

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

widzę, że istnieje sposób, aby to zrobić z XPath:

Get text from next tag

ale nie używam XPath i mam nadzieję, aby nie zacząć właśnie do tego. Rozumiem, że mogę uzyskać WSZYSTKIE tekst wewnątrz znacznika p, ale chcę uzyskać tylko tekst "tam", a także znać jego związek z p i znacznikami. To nie wydaje się być niczyim dzieckiem ani rodzeństwem. (Możesz założyć, że mogę uzyskać dowolny inny element/węzeł, więc może być względny.) Każdy samouczek DOM zdaje się ignorować fakt, że tekst może występować poza znacznikami.

Dzięki.

+0

pytanie, powiązany jest używając PHP - czy używasz PHP? lub po prostu JavaScript? – ManseUK

+0

tylko javascript. Więc kolejny powód, dla którego odpowiedź nie zadziała! – user984003

Odpowiedz

7

Coś jak this?

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

tak, to naprawdę takie proste :) "tam" jest dzieckiem P. Z jakiegoś powodu, który nie działał dla mnie. Dzięki. – user984003

5

wykorzystanie tego .. http://jsfiddle.net/2Dxy4/

To jest Twój HTML -

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

W swojej JS

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

lub

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

Musisz najpierw uzyskać innerHTML atrybut następnie przejąć całkowitą innerHTML z użyciem podciąg można mieć w niej udział ..

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

Dobrze, jeśli używać jQuery jest podstępny sposób, aby uzyskać ten

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

Powiązane problemy