jquery如何获取第一个子元素

JavaScript06

jquery如何获取第一个子元素,第1张

下面写个例子来获取id为demo的元素的第一个子元素。

<!--加载jquery-->

<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>

<script>

$(function(){//页面加载完成时进入

    var firstChild=$("#demo>:first")//用选择器的方式获取第一个子元素

    firstChild.css('color','red')//将第一个子元素中的文字变为红色,可以看到只有“111”是红色的

})

</script>

<div id="demo"><span>111</span><span>222</span><span>333</span></div>

说明一下以上例子中用到选择器

#demo是id选择器获取id为demo的元素

>是子选择器获取所有子级

:first是首项选择器获取第一个元素

三者结合起来就是获取id为demo的元素的所有子元素中的第一个元素。

其实jquery的选择器有很多,包括:

:last获取最后一个元素

:eq(index)获取第index个选择器

更多可以直接百度搜索“jquery选择器”来查看。

<script>

var father=document.getElementById("father")

var div=father.getElementsByTagName("div")[0]

a()

function a(){

var ary=[]

var b=div.nextElementSibling

while (b){

ary.push(b)

b=b.nextElementSibling

}

console.log(ary)

}

</script>

在获取子元素之前js肯定不知道总共有多少个子元素,所以子元素都是以元素集合的形式出现的(即使子元素只有一个甚至没有),然后再从中枚举出每个子元素,比如:

elem.childNodes[0] //这是第一个子元素

elem.childNodes[1] //这是第二个子元素,依此类推

此外,还可以使用children,它也是个集合,用法一样:

elem.children[0] //这是第一个子元素

elem.children[1] //这是第二个子元素,依此类推

childNodes和children的区别在于,前者会把文本元素(含回车、空格等)也作为子元素,后这则只把标签元素作为子元素

此外,如果知道子元素的ID、Name、Class或者标签名,也可以直接获取子元素,比如:

elem.getElementById("abc") //获取id为abc的子元素(ID具有唯一性,所以它可以直接获取)

elem.getElementsByName("xxx")[0] //获取name属性为xxx的第一个子元素(name属性允许重名,所以它是个集合)

elem.getElementsByClassName("hehe")[0] //获取class为hehe的第一个子元素(class属性也是可以重名的)

elem.getElementsByTagName("a")[0] //获取第一个a标签子元素