DOM / Javascript: получить текст после тега - PullRequest
7 голосов
/ 20 февраля 2012

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

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

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

Получить текст из следующего тега

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

Спасибо.

Ответы [ 5 ]

7 голосов
/ 20 февраля 2012

Что-то вроде это ?

var p = document.getElementsByTagName("p")[0];
alert(p.childNodes[1].textContent)
5 голосов
/ 20 февраля 2012

используйте это .. 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)​
0 голосов
/ 20 февраля 2012

Хорошо, если вы используете jQuery, есть хитрый способ получить это

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

0 голосов
/ 20 февраля 2012

Вы должны сначала получить атрибут 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 голосов
/ 20 февраля 2012

Вы можете использовать lastChild и textContent, чтобы получить его: http://jsfiddle.net/M3vjR/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...