是否有可能获得子dom元素,该元素将是特定类型的第一个子元素。
例如,在这两个示例中,我都想要获取img
元素:
<a id="mylink" href="#"><img src="myimage.jpg" /></a>
与
<a id="mylink" href="#"><span></span><img src="myimage.jpg" /></a>
是否有可能获得子dom元素,该元素将是特定类型的第一个子元素。
例如,在这两个示例中,我都想要获取img
元素:
<a id="mylink" href="#"><img src="myimage.jpg" /></a>
与
<a id="mylink" href="#"><span></span><img src="myimage.jpg" /></a>
span
。
class
用class
可以解决这个问题。答案也将有所不同:(.getElementsByClassName('mylink')[0]
或其他索引)和.querySelector('.mylink')
。使用ID时,最靠前的答案是不正确的,因为如果第一个元素为<a id=mylink></a>
,则不会<img>
选择任何元素。
vs.
在它们之间插入一个,这就是我认为OP想要的。
Answers:
尝试这个
var firstIMG = document.getElementById('mylink').getElementsByTagName('img')[0];
您也可以使用querySelector
:
var firstImg = document.querySelector("#mylink > img:first-of-type");
:first-child
必须替换为:first-of-type
。
这是一个javascript函数
function getFirst(con,tag)
{
return con.getElementsByTagName(tag)[0];
}
//html markup
<a id="mylink" href="#"><img src="myimage.jpg" /></a>
<a id="mylink1" href="#"><img src="myimage.jpg" /></a>
//test
var con=document.getElementById('mylink');
var first=getFirst(con,'img');