[英]How do I check an element is exists in JQuery?
如果該元素存在,則必須為該元素設置特定的值。
var a = jQuery("#abc");
if(a) {
a.val("something");
}
為此,我必須檢查a.length
來檢查元素是否存在。
如果我直接設置該值而不檢查該元素是否存在,會發生什么?
因為,如果我執行以下操作
jQuery("#abc").val("dfd");
當元素不存在時,chrome中沒有出現任何錯誤。 那么,我可以繼續這樣使用嗎?
要么
任何解決方法?
幫助贊賞!
如果我直接設置該值而不檢查該元素是否存在,會發生什么?
沒有。 在一個空的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");
當元素不存在時,chrome中沒有出現任何錯誤。 那么,我可以繼續這樣使用嗎?
對。
jQuery的val()
方法只是設置(或獲取)每個匹配元素的值。 如果沒有匹配的元素,將沒有設置(或獲取)的值。 您無需檢查元素是否首先存在。
描述 :設置匹配元素集中每個元素的值。
如果沒有匹配的元素,則不會發生任何事情。
嘗試-
jQuery("#abc").length > 0
是的,您可以放心繼續。 jQuery只是對選擇器找到的所有元素執行一個函數-如果沒有,則不執行任何操作。 沒有錯
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.