为什么这总是回归真实? jQuery的

时间:2016-08-23 20:54:18

标签: javascript jquery

今天我遇到了一些奇怪的事情。

由于某些原因,此函数始终返回true,即使给定的父元素中没有title元素。

// JSEPlaceholder contains "#adiv"
if(typeof $(JSEPlaceholder).children().find("title") !== "undefined"){
  alert();
}

为什么会这样?

2 个答案:

答案 0 :(得分:8)

这是因为jQuery将总是返回一个jQuery对象。它可能不包含任何元素,但它仍然是一个对象。

你想要做的是检查它的长度。

if($(JSEPlaceholder).children().find("title").length > 0){
    alert();
}

答案 1 :(得分:4)

$.find()永远不会返回undefined。如果什么也没找到,它只返回一个空集合。