慕粉3361053
2016-08-20 21:10
<!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")[0];
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>已经是最后一个节点");
}
</script>
</body>
</html>
其中 function get_nextSibling(n){
var x=n.nextSibling;
while (x && x.nodeType!=1){
x=x.nextSibling;
}
return x;
}1、代码中没有点击函数,也没有函数调用,为什么要定义一个函数,
2、关于function get_nextSibling(n)定义一个函数get_nextSibling,和参数n 中的参数n是什么,请各位大神通俗讲解,不要复杂,我目前的状况,自认为函数学的还可以,但是在function get_nextSibling(n)加入参数n之后就蒙圈了
function get_nextSibling(n){
var x=n.nextSibling;
while (x && x.nodeType!=1){
x=x.nextSibling;
}
return x;
}
需求是找指定节点的上一个节点---这个参数n就是要传进去的指定节点,看下边代码
var x=document.getElementsByTagName("li")[0];
document.write(x.nodeName);
document.write(" = ");
document.write(x.innerHTML);
x是获得的一个指定节点 ,把它当做参数传进下边函数
var y=get_nextSibling(x);
结果就是:找到一个元素节点
函数中的条件(x && x.nodeType!=1 )
x 保证不是null
x.nodeType!=1保证是元素节点
var y=get_nextSibling(x); 这个就是调用了,函数会返回一个元素节点。
参数n就是要处理的元素节点,这个函数的作用就是得到它的下一个紧按着的元素兄弟节点。
function get_nextSibling(n){
var x=n.nextSibling;
while (x && x.nodeType!=1){
x=x.nextSibling;
}
return x;
}
var x=document.getElementsByTagName("li")[0];
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>已经是最后一个节点");
}
var y=get_nextSibling(x); 这里不是调用函数了吗?
之所以要定义一个函数是为了方便,假如要写的代码很长时,函数如果是一次性的,那么代码会很长很繁琐,假如我把一些特定功能代码写成函数,那就会方便很多,比如这里函数功能是你给出一个节点,它返回下一个相邻的元素节点,一遇到找下一个相邻元素节点就调用,不用重新写了。
var x=document.getElementsByTagName("li")[0];
var y=get_nextSibling(x);
function get_nextSibling(n)
n是什么?我们结合这三句来看首先x是什么呢?x是li数组的第一个,简称第一个li,然后x就被函数调用了,用来赋值给形参n,也就是说现在n也是第一个li了 n=x
再看 假如 function addn(a,b){ return a+b;}
var c = addn(4,5); //a=4,b=5,c=a+b=9
JavaScript进阶篇
468190 学习 · 21891 问题
相似问题