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

来源:9-11 访问兄弟节点

慕斯6055237

2018-10-05 14:38

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

写回答 关注

3回答

  • 凌微阳
    2018-10-08 10:06:00
    已采纳

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

    whiteD... 回复PengGu...

    传一个参数进去

    2018-10-30 18:12:53

    共 2 条回复 >

  • 慕圣3571134
    2018-11-24 23:13:34

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

  • weibo_慕丝3052053
    2018-11-14 11:10:57

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


    qq_med...

    n节点之前的一个兄弟节点

    2018-11-14 15:13:19

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468061 学习 · 21891 问题

查看课程

相似问题