jQuery:如果 $('#id') 不匹配任何东西会返回啥?
Posted
技术标签:
【中文标题】jQuery:如果 $(\'#id\') 不匹配任何东西会返回啥?【英文标题】:jQuery: What is returned if $('#id') doesn't match anything?jQuery:如果 $('#id') 不匹配任何东西会返回什么? 【发布时间】:2010-10-28 14:23:17 【问题描述】:如果 $('#id') 不匹配会返回什么?我认为它会是 null 或 false 或类似的东西,所以我尝试像这样检查:
var item = $('#item');
if (!item)
...
但这没有用。
【问题讨论】:
【参考方案1】:您可以使用以下方法找到匹配的元素数:
$('selector').length
要检查是否没有匹配的元素,请使用:
var item = $('#item');
if (item.length == 0)
// ...
【讨论】:
是的,这是正确的方法。但是,要回答这个问题,它会返回一个匹配的 DOM 元素的对象/数组。 'length' 属性可用于任何 javascript 对象(数组、字符串等...)以确定其长度(num 个元素、num 个字符等...)。【参考方案2】:虽然$('selector').length
非常适合找出您的选择器匹配的对象数量,但实际上完全没有必要。关于 jQuery 的事情是所有基于选择器的函数在内部都使用长度,所以你可以只做 $(selector).hide()
(或其他什么),它对空集不采取任何行动。
【讨论】:
这通常是正确的,但偶尔你只需要检查一个元素是否存在。不过好点,所以无论如何+1,因为你在大多数情况下都是正确的。【参考方案3】:一个不包含 DOM 节点的 jQuery 对象。
你应该可以使用
var item = $('#item');
if (!item[0])
...
为了您的存在检查。
【讨论】:
【参考方案4】:长度属性的别名是 size() 方法。所以你基本上也可以查询:
$("选择器").size()
查看匹配的元素数量。
【讨论】:
以上是关于jQuery:如果 $('#id') 不匹配任何东西会返回啥?的主要内容,如果未能解决你的问题,请参考以下文章