javascript - 如何检查 JQuery 中是否存在某个元素?

标签 javascript jquery

如果元素存在,我必须为该元素设置特定值。

var a = jQuery("#abc");
if(a) {
   a.val("something");
}

为此,我必须检查 a.length 以检查元素是否存在。

如果我直接设置值而不检查元素是否存在会发生什么?

因为,如果我执行以下操作

jQuery("#abc").val("dfd");

当元素不存在时,我在 Chrome 中不会收到任何错误。那么,我可以继续这样使用吗?

有什么解决办法吗?

感谢帮助!

最佳答案

What happen if I directly set the value without checking the element is present or not?

什么都没有。在空的 jQuery 对象(集合)上调用 jQuery 方法不会导致问题,它只是不执行任何操作。这是 jQuery 中使用的基于集合的概念的伟大之处之一。等效的 DOM 代码 (document.getElementById("abc").value = "something";) 抛出错误,但 jQuery 版本不会。

具体来说,如果 jQuery 集为空:

  • 调用 setter 方法(如 val 调用)将变为无操作。

  • 调用getter方法 - 例如,var x = $("#foo").val(); - 返回值undefined .

  • 调用遍历方法 - 例如,var divs = $("#foo).find("div"); - 为您提供一个新的空设置。

您只需检查(如您所说,使用 if (a.length)if (a[0]))您是否真的关心。

jQuery("#abc").val("dfd");

I don't get any error in chrome when the element is not present. So, can I continue to use like this?

是的。

关于javascript - 如何检查 JQuery 中是否存在某个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28319152/

相关文章:

javascript - 如何添加隐藏的自定义属性

JavaScript - 预呈现另一个页面

javascript - 通过在图像选择器中悬停来 Bootstrap 弹出窗口

php - 将 PHP 变量传递给 AJAX 变量

javascript - 来自 php 的 Jquery 移动 json

javascript - 在数据库中插入单选按钮值

javascript - 主干网不随 REST 请求发送属性

javascript - 如何使用 javascript 从消息中获取特定文本

javascript - Protractor 如何关闭模式对话框?

javascript - 带水平标签的 HTML 页面