2011-08-29 62 views
2

如何抓取選擇器中的所有對象?

$(":input") 

你如何返回的每個對象,如果有多個輸入?也許在某種陣列?

另外,是否可以在使用$(":input").after(x)時返回單個對象?

+0

如果通過*「個別對象」*您的意思是被插入的元素(用'x'表示),那麼[點擊這裏](http://stackoverflow.com/questions/7231489/how-to-grab-所有的對象功能於一個選擇器/ 7231684#7231684)。 – user113716

回答

8

jQuery each

$('input').each(function() { 
    $(this); // A Single Input 
}) 

或者

$('input')[0]; // HTMLElement Input 

或者,jQuery's .get

支持比[...],例如多一點獲得(-1)返回最後 元素(可以是有用的) - pimvdb

如何獲得長度:$('input').length

+0

這是否像循環? –

+0

jQuery的每個行爲都像循環一樣,是的 – Joe

+0

使用.after後,如何猜測我現在必須對每個對象執行.after而不是一次? –

1

jQuery的工廠函數,jQuery(...selector...)$(...selector...),返回一個jQuery.init對象,這基本上是元素的花式陣列。

each function是一種簡單的方法,可以在迭代整個元素選擇的同時繼續鏈接函數調用。

.each()方法旨在使DOM循環結構簡潔且不易出錯。當它調用它遍歷作爲jQuery對象一部分的DOM元素時。每次回調運行時,都會從當前循環迭代開始,從0開始。更重要的是,回調在當前DOM元素的上下文中觸發,因此關鍵字this指的是元素。

功能參數有兩個參數function(index, element),你可以代替index使用i,因爲它具有相同的基本效果。 this也將引用element,所以第二個參數在很大程度上是不必要的,除非您計劃在內部作用域內執行一個函數,同時保留對該元素的引用。

var vals=[]; 
$('input').each(function(index,element){ 
    var $this, val; 
    $this = $(this); 
    val = $this.val(); 
    vals.push(val); 
    ...do more stuff... 
}); 
console.log(vals); 
1
$(":input") // Returns a collection of DOM elements at 0-based indices wrapped 
      //  in an object that contains jQuery methods 

$(":input").length // Is used to discover the quantity of elements matched. 

$(":input").after('something') // Implicitly applies .after() to each element. 
           // Most jQuery methods work this way. 

$(":input").each(function() { // Lets you operate on each element individually. 
    alert(this.nodeName); // "this" will reference the current element. 
});       

「此外,是否有可能同時使用$返回單個對象(」:輸入「)。(X)」後

如果你的意思是你想.after()創建的結果元素的集合,這將取決於什麼x是。

如果它是一個單一的元素(不是文本節點) ,只是這樣做:

var new_elems = $(":input").after(x).next(); 

這將新元素的每個input後,再使用next()[docs]方法遍歷每個input的下一個元素的兄弟姐妹,這應該是個插入的新元素。