2017-08-28 78 views
0

也许我错过了什么,但无论我读它是建议,如果我想查一个jQuery构造函数是否返回一个jQuery对象是通过完成:检查jQuery对象中有html元素

if(jQuery('.something').length){...}

但我将如何验证它是否是它返回的jQuery对象中的html元素?

我的意思是,这也将返回true:

if(jQuery(44551).length){...}

虽然它返回jQuery对象它不具有HTML元素在里面。

+0

jQuery的选择器只返回HTML元素。 –

+0

但如果我向jQuery构造函数提供一个数字,它将不会返回html元素。 –

回答

1

你可以使用is()检查,如果集合包含一定的选择

var someelement = $(....); // unknown 

if (someelement.is('.something')) {... 
相匹配的元素

根据选择器,元素, 或jQuery对象检查当前匹配的元素集,并返回true,如果这些元素中的至少一个为 匹配给定的参数。

+0

好的解决了我的问题。 $('。never-mind')。is('。never-mind')'返回true(当然,在验证.never-mind存在之后),并且$(555).is(555)'返回false 。谢谢你,小伙伴 –

0

要检查是否有一个jQuery元素中的HTML元素,然后执行:

if ($('.el').html().length) { ... 
+0

如果我向jQuery选择器提供一个数字,那么你的代码会抛出一个错误,我可以将它包装在一个try-catch语句中,但@ adeneo的解决方案更简单。谢谢。 –