理解modal.js中的复杂条件

时间:2015-04-07 09:04:28

标签: javascript jquery

嘿伙计们,我刚刚浏览了源代码,如果是modal.js并且遇到了以下几行:

if (!that.$element.parent().length) {

  }

我是JS和Jquery的新手,我认为这里使用的是not运算符,而basicall我们正在获取$ element的父元素,然后访问length属性。但我仍然没有完全得到这种情况的实际用法。

这个条件也可以在line 79上看到,也可以在git上看到。

谢谢。

Alex-Z。

2 个答案:

答案 0 :(得分:1)

这基本上是检查这样的元素是否存在。每个JQuery选择器都隐式返回一个元素列表,这些元素可以为空。如果length为0,则在布尔上下文中求值为false,所以!如果元素不存在(元素列表为空),则在前面将使此条件为真。

答案 1 :(得分:1)

它检查DOM中是否已存在给定元素。这个逻辑确保它不会被添加两次:

 if (!that.$element.parent().length) {
    that.$element.appendTo(that.$body) // don't move modals dom position
  }