簡體   English   中英

如何檢查JQuery中是否存在元素?

[英]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的val()文檔中

描述 :設置匹配元素集中每個元素的值。

如果沒有匹配的元素,則不會發生任何事情。

嘗試-

jQuery("#abc").length > 0

是的,您可以放心繼續。 jQuery只是對選擇器找到的所有元素執行一個函數-如果沒有,則不執行任何操作。 沒有錯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM