навигация по тегу DOM Javascript - PullRequest
1 голос
/ 29 октября 2010

Вот структура DOM:

<div id="some">
 <a href="#" style="color:red;">NOTHIS</a>
 <a href="#" style="color:red;">NOTHIS</a>
 <h3 class="myclass"><a href="#" style="color:red;">HELLO</a></h3>
</div>

Как я могу получить значение HELLO в javascript?

РЕДАКТИРОВАТЬ: Забыл, у меня есть другие теги привязки внутри 'some', поэтому я хочу строго тег привязки внутри h3's

РЕДАКТИРОВАТЬ2: Понял:

var n = document.getElementById('some').getElementsByTagName('h3')[0].getElementsByTagName('a')[0].innerHTML;

Спасибо всем!

Ответы [ 5 ]

5 голосов
/ 29 октября 2010

var linkText = document.getElementById('some').getElementsByTagName('a')[0].innerHTML;

или, если у вас есть jQuery

var linkText = $('#some').find('a').html();
1 голос
/ 29 октября 2010
var anchor = document.getElementById('some').getElementsByTagName('a')[0],
    yourText = anchor.innerText || anchor.textContent;

Это тоже кросс-браузер. http://www.quirksmode.org/dom/w3c_html.html

0 голосов
/ 29 октября 2010

, чтобы получить доступ к одному элементу dom с помощью javascript, вам нужен способ уникальной идентификации этого элемента. идеальный подход - дать вашему элементу уникальный идентификатор.

<a id="myAnchor" href="#" style="color:red;">HELLO</a>

тогда вы можете напрямую получить ссылку в скрипте.

var myAnchor = document.getElementById('myAnchor');

или если вам гарантировано, что ваш элемент является единственным якорным элементом внутри идентификатора "some", который вы можете сделать

var someDiv = document.getElementById('some');
var anchors = someDiv.getElementsByTagName('a'); // returns a list of anchor elements
var myAnchor = anchors[0]; // get the first element in the list

но так как это не тот случай, вам придется еще немного пройти через дом.

var someDiv = document.getElementById('some');
var headers = someDiv.getElementsByTagName('h3');
var myH3 = headers[0];
var anchors = myH3 .getElementsByTagName('a'); // returns a list of anchor elements
var myAnchor = anchors[0]; // get the first element in the list

оттуда вы можете увидеть материал между тегами с

alert(myAnchor.innerHTML);

или

alert(myAnchor.firstChild.nodeValue);

или какой-либо другой метод, уже упомянутый здесь.

0 голосов
/ 29 октября 2010
var shouldEqualHello = document.getElementById('some').getElementsByTagName('h3')[0].getElementsByTagName('a')[0].innerHTML;

редактировать: исправлено

0 голосов
/ 29 октября 2010

Распространение DOM от вашего ID.

var s = document.getElementById('some').getElementsByTagName('h3')[0].getElementsByTagName('a')[0].innerHTML;

Я бы поставил удостоверение личности на a.

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