如何检查jQuery中元素的存在?

我现在的代码是:

if ($(selector).length > 0) {
    // Do something
}

有没有更优雅的方式来处理这个问题?也许是插件或函数?


当前回答

感谢您分享这个问题。首先,有多种方法可以检查它。如果您想检查DOM中是否存在HTML元素。为此,您可以尝试以下方法。

使用Id选择器:在DOM中按Id选择元素,应该提供以前缀(#)开头的Id名称。您必须确保DOM中的每个Html元素都必须具有唯一的id。使用类选择器:可以使用前缀(.)选择属于特定类的所有元素。

现在,如果您想检查元素是否存在于DOM中,可以使用以下代码检查它。

if($(“#myId”).length){//id选择器} if($(“.myClass”).length){//类别选择器}

如果要检查任何变量是否未定义。您可以使用以下代码进行检查。

让x如果(x)console.log(“X”);其他的console.log(“X未定义”);

其他回答

if ( $('#myDiv').size() > 0 ) { //do something }

size()统计选择器返回的元素数

您可以通过以下方式节省几个字节:

if ($(selector)[0]) { ... }

这是因为每个jQuery对象也伪装成一个数组,所以我们可以使用数组解引用运算符从数组中获取第一个项。如果指定索引中没有项,则返回undefined。

$.contains()是您想要的吗?

jQuery.incontains(容器,已包含)如果第二个参数提供的DOM元素是第一个参数提供DOM元素的后代,则$.contains()方法返回true,无论它是直接子元素还是更深层的嵌套。否则,返回false。仅支持元素节点;如果第二个参数是文本或注释节点,$.contains()将返回false。注意:第一个参数必须是DOM元素,而不是jQuery对象或纯JavaScript对象。

只需检查选择器的长度,如果它大于0,则返回true,否则返回false。

对于ID:

 if( $('#selector').length )         // use this if you are using id to check
{
     // it exists
}

对于类别:

 if( $('.selector').length )         // use this if you are using class to check
{
     // it exists
}

对于下拉列表:

if( $('#selector option').size() ) {   // use this if you are using dropdown size to check

   // it exists
}

尝试测试DOM元素

if (!!$(selector)[0]) // do stuff