2012-02-20 2 views
7

Как получить текст «там», которое приходит после тега в HTML-документе:DOM/JavaScript: получить текст после тега

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

Я вижу, что есть способ сделать это с помощью XPath:

Get text from next tag

, но я не использую XPath и надеюсь не придется начинать только для этого. Я понимаю, что могу получить ВСЕ текст внутри тега p, но я хочу получить только текст «там», а также узнать его связь с p и тегами. Кажется, это не чей-то ребенок или родной брат. (Можно предположить, что я могу получить любой из других элементов/узлов, чтобы он мог быть относительно этого.) Кажется, что каждый учебник DOM игнорирует тот факт, что текст может возникать за пределами тегов.

Спасибо.

+0

вопрос, который вы связаны с является используя PHP - вы используете PHP? или просто JavaScript? – ManseUK

+0

только javascript. Поэтому еще одна причина, по которой ответ не будет работать! – user984003

ответ

7

Нечто вроде this?

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

Да, это действительно так просто :) «Там» - ребенок П. По какой-то причине это не работало для меня. Благодарю. – user984003

5

использование этого .. http://jsfiddle.net/2Dxy4/

Это ваш HTML -

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

В вашем JS

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

или

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

Вы должны сначала получить атрибут innerhtml затем принять общее innerhtml с помощью подстроки вы можете иметь свою часть там ..

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

Ну, если вы используете JQuery есть подлый способ, чтобы получить это

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

Смежные вопросы