为了账号安全,请及时绑定邮箱和手机立即绑定

看不懂,有没有大神帮忙解释一下这段代码,主要是while的条件看不懂,谢谢

function get_previousSibling(n)
{
var x=n.previousSibling;
while (x && x.nodeType!=1)
  {
  x=x.previousSibling;
  }
return x;
}

正在回答

3 回答

主要是判断之前紧跟的节点是不是空,Internet Explorer 会忽略节点间生成的空白文本节点(例如,换行符号),而其它浏览器不会忽略,所以要判断一下。如果nodeType==1就说明是元素节点,就可返回x结束函数,如果不等于1就再向前找一个节点来跳过这个空白文本节点( x=x.previousSibling;)

1 回复 有任何疑惑可以回复我~
#1

PengGuo

你好,那个小括号里面的n是什么意思?
2018-10-25 回复 有任何疑惑可以回复我~
#2

whiteDive 回复 PengGuo

传一个参数进去
2018-10-30 回复 有任何疑惑可以回复我~

while里面的条件x已经被赋值n.previousSibling,也就是说x为n节点的前一个节点,如果前面没有节点的话,就返回null,根据数据自动转换类型规则,x=null;null=false;所以x=false那么条件不成立,就不执行循环体内的代码了。我想后面的x.nodeType!=1你应该理解的吧。

0 回复 有任何疑惑可以回复我~

你好,n.previousSibling中的previousSibling是什么意思


0 回复 有任何疑惑可以回复我~
#1

qq_mediocre_1

n节点之前的一个兄弟节点
2018-11-14 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

看不懂,有没有大神帮忙解释一下这段代码,主要是while的条件看不懂,谢谢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信