如果元素存在,我必须为该元素设置特定值。
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/