2014-09-02 66 views
1

考慮下面的HTML得到的值的列表?喜歡的東西:如何從jQuery的輸入

var items = $('input[name="imdb_url"]'). ?? 
res = [v1, v2, v3, v4] 
+1

你看過http://api.jquery.com/serializearray/嗎?你可以做'var items = $('input [name =「imdb_url」]')。serializeArray()'然後你會像'items [0] .value' – SpYk3HH 2014-09-02 20:09:56

+0

一樣拉你也沒有價值,你可以考慮看一下http://api.jquery.com/jquery.map/,其中你可以做一些像'var items = $ .map($('input [name =「imdb_url」]'),function(v ,i){return v.value;})'那麼你就像'items [0]'' – SpYk3HH 2014-09-02 20:16:09

回答

4

我想用.map()

var items = $('input[name="imdb_url"]').map(function(){ return this.value; }); 

雖然還有其他方法,map會通過每個匹配元素,並根據裏面的函數return製作一個類似數組的對象。你可以閱讀更多關於它here

如前所述,您還可以使用$.map()這在一個稍微不同的方式工作,但也是一個不錯的選擇,如果你想獲得一個數組,而不是一個陣列狀物體@SpYk3HH

+0

一樣拉你能否詳細說明使用'.map'和'.each'之間的區別? – David542 2014-09-02 20:13:52

+0

另外,我會向他解釋兩種方式的區別。使用'$ .map'可以得到更直接的「自然數組」,而使用'$(ele).map'則可以獲得比他打算檢索的更多的jQuery對象。這可能是一個for循環中的問題,其中jquery方法將在 – SpYk3HH 2014-09-02 20:25:25

+0

btw中進行評估,以快速回答道具。 +1 – SpYk3HH 2014-09-02 20:27:11

1

這應該工作:

var items =[];$('input[name="imdb_url"]').each(function() {items.push($(this).val());}); 

這固然我平時寫,如:

var items = []; 
$('input[name="imdb_url"]').each(function() { 
    items.push($(this).val()); 
}); 

但你自找的上線:)