菁菁user
2016-09-19 14:22
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>nextSibling</title>
</head>
<body>
<ul id="u1">
<li id="a">javascript</li>
<li id="b">jquery</li>
<li id="c">html</li>
</ul>
<ul id="u2">
<li id="d">css3</li>
<li id="e">php</li>
<li id="f">java</li>
</ul>
<script type="text/javascript">
function get_nextSibling(n){
var x=n.nextSibling;
while (x && x.nodeType!=1){
x=x.nextSibling;
}
return x;
}
var x=document.getElementsByTagName("li")[2];
document.write(x.nodeName);
document.write(" = ");
document.write(x.innerHTML);
var y=get_nextSibling(x);
if(y!=null){
document.write("<br />nextsibling: ");
document.write(y.nodeName);
document.write(" = ");
document.write(y.innerHTML);
}else{
document.write("<br>已经是最后一个节点");
}
function get_previousSibling(n)
{
var a=n.previousSibling;
while(a && a.nodeType!=1)
{
a=a.previousSibling;
}
return a;
}
var b=document.getElementsByTagName("li")[3];
document.write(b.nodeName);
document.write("=");
document.write(b.innerHTML);
var c=get_previousSibling(b);
if(c!=null)
{
document.write(c.nodeName);
document.write("=");
document.write(c.innerHTML);
}else{
document.write("已经是第一个了!");
}
</script>
</body>
</html>
楼上的方法可行,但是要告诉你,为啥第三个元素就是最后一个了的原因
首先
var x=document.getElementsByTagName("li")[2];
句话是获取整个html内容中的li元素集合,第一个ul有3个,第二个ul有3个,总共6个
nextSibling
nextSibling 属性返回指定节点之后紧跟的节点,在相同的树层级中。
意思是要是兄弟元素。所以这里的x就是第一ul中的最后一个li,他的后面没有兄弟姐妹了,所以用nexSibling就是最后一个
将<ul id="u2"> </ul>这两行去掉,成为新的排列
<ul id="u1">
<li id="a">javascript</li>
<li id="b">jquery</li>
<li id="c">html</li>
<li id="d">css3</li>
<li id="e">php</li>
<li id="f">java</li>
</ul>
JavaScript进阶篇
468276 学习 · 21892 问题
相似问题