我在javascript和jQuery的新的,我只是念想$('#myForm').get(0).submit()
至於我的理解代碼,該myForm
是一個<form>
一個ID,它應該是一個唯一的ID。那麼爲什麼這個代碼使用get(0)
這似乎選擇器返回一個數組。會有多個具有相同ID的html元素myForm
?
我在javascript和jQuery的新的,我只是念想$('#myForm').get(0).submit()
至於我的理解代碼,該myForm
是一個<form>
一個ID,它應該是一個唯一的ID。那麼爲什麼這個代碼使用get(0)
這似乎選擇器返回一個數組。會有多個具有相同ID的html元素myForm
?
jquery總是返回一個數組,但您可以像使用單個對象一樣使用它。
如:
$("#someID").submit();
或任何其他jQuery函數:
$("#someID").html("<h1>test</h1>");
你也可以得到的JavaScript元素:
$("#someID")[0];
正如你可以在文檔中看到: https://api.jquery.com/submit/你可以將exec函數直接提交給表單對象:
$('#myForm').submit();
而且,正如你可以在這裏閱讀https://api.jquery.com/get/
每個jQuery對象也僞裝成一個陣列
對於ID選擇,jQuery使用JavaScript函數document.getElementById()
什麼它所做的是選擇具有給定id屬性的單個元素。 Jquery返回它封裝在自定義對象中。從devx blog:
選擇器返回被稱爲「纏集」,這是 包含所有被選擇的DOM元素的數組狀結構的jQuery對象。 您可以像遍歷數組一樣遍歷包裝集或通過索引器(例如$(sel)[0])訪問各個元素。更重要的是,您還可以針對所有選中的元素應用jQuery函數。
至於我的理解,myForm會是一個
<form>
一個ID,它應該是一個唯一的ID。 那麼爲什麼這段代碼使用得到(0)看起來選擇器返回一個數組。
即與此相同:
$('#myForm')[0].submit();
需要注意的一點是,jQuery選擇給你一個jQuery對象,只有jQuery方法可以在它被應用。
但在你的情況下,似乎你想觸發本地DOM submit
事件,並且只能應用於不在jQuery對象上的dom節點。所以,.get(0)
返回一個DOM節點,並且.submit()
事件已經觸發。雖然可以在JavaScript中簡化爲:
document.querySelector('#myForm').submit();
或
document.getElementById('myForm').submit();
如果你到.get()
文檔:
描述:元素檢索一個由jQuery對象匹配。
.get()
方法授予對每個jQuery對象下的DOM節點的訪問權限。如果索引的值超出範圍 - 小於元素的負數或等於或大於元素的數量 - 則返回undefined。
這是jquery選擇器返回一個數組。如果DOM是正確的,這意味着ID對每個元素唯一的,那麼你肯定可以使用
$('#form_id').submit()
,而不是
$('#form_id').get(0).submit()
然而,$( '#form_id')返回,而$的jQuery對象('#form_id')。get(0)返回一個DOM元素。 jquery對象可以使用jquery函數。
$('#id')//jquery object array
$('#id')[0]//first element of this array
$('#id').get(0)//first element of this array, DOM element
$('#id').eq(0)//first element of this array, jquery object
使用Id時,應該只有一個。不要擔心得到(0)請參閱http://stackoverflow.com/a/1053890/1071091 – Captain0
**任何** jQuery選擇器返回數組(實際上是array-lke對象)**不管**的結果數火柴。 – hindmost