导航dom javascript特定标记

导航dom javascript特定标记,javascript,dom,Javascript,Dom,这里是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> 谢谢大

这里是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>

谢谢大家

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

或者如果您有jQuery

var linkText = $('#some').find('a').html();

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

或者如果您有jQuery

var linkText = $('#some').find('a').html();

从ID向下传播DOM

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

我会自己在
a
上放置一个ID。

从您的ID向下传播DOM

var s = document.getElementById('some').getElementsByTagName('h3')[0].getElementsByTagName('a')[0].innerHTML;
var anchor = document.getElementById('some').getElementsByTagName('a')[0],
    yourText = anchor.innerText || anchor.textContent;
我会自己在
a
上加一个ID

var anchor = document.getElementById('some').getElementsByTagName('a')[0],
    yourText = anchor.innerText || anchor.textContent;
它也是跨浏览器的

它也是跨浏览器的

编辑:固定


edit:fixed

要使用javascript访问单个dom元素,您需要一种唯一标识它的方法。理想的方法是给元素一个唯一的id

<a id="myAnchor" href="#" style="color:red;">HELLO</a>
或者,如果您保证您的元素是“some”id中唯一的锚元素,那么您可以这样做

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
但既然不是这样,你就必须在dom中再走一段路

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);


或者这里已经提到的一些其他方法。

要使用javascript获得单个dom元素,您需要一种唯一标识它的方法。理想的方法是给元素一个唯一的id

<a id="myAnchor" href="#" style="color:red;">HELLO</a>
或者,如果您保证您的元素是“some”id中唯一的锚元素,那么您可以这样做

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
但既然不是这样,你就必须在dom中再走一段路

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);


或者这里已经提到的其他方法。

您在锚定标记上尝试过innerText属性吗?@XSaint32我认为该属性是IE-only。您在锚定标记上尝试过innerText属性吗?@XSaint32我认为该属性是IE-only.context.getElementsByTagName返回一个数组。使用“h3”context.getElementsByTagName返回一个数组。请使用“h3”查看选择器,希望他不是专门为这件事引入整个库。如果只需要在少数地方遍历DOM,我认为引入jquery或至少sizzle不是一个坏主意。使用DOM接口进行DOM遍历总是非常脆弱的,对HTML的任何更改都需要对代码进行更改。如果您不介意脆弱的代码,请使用getElementsByTagname。不过,希望他没有专门为这一点引入整个库。如果您只需要在几个地方遍历DOM,我不认为引入jquery或至少sizzle是个坏主意。使用DOM接口进行DOM遍历总是非常脆弱的,对HTML的任何更改都需要对代码进行更改。如果您不介意脆弱的代码,请使用getElementsByTagname。