2016-12-04 81 views
0

我有一個輸入數組,我想他們根據ID分開,我想用不同的名字全部首發:陣列的投入將它們分開

var documents = $('[data-document]'); 
documents 
init[8] 
    0: input#fistID 
    1: input#firstTitle 
    2: input#firstSize 
    3: input#secondID 
    4: input#secondTitle 
    5: input#secondSize 

我怎麼可以得到所有從我的數組中的元素其ID是以「第一」開頭的?

+0

據jQuery的文檔... HTTP:// API .jquery.com/attribute-starts-with-selector/ – Nico

回答

2

在技術上不有一個數組,你有一個jQuery對象恰好表現很像一個數組。您可以使用jQuery.filter()過濾現有的jQuery對象,並返回僅包含與選擇器匹配的元素的新jQuery對象。

var documents = $('[data-document]'); 

var filteredDocuments = documents.filter('[id^=first]'); 
1

由於Ouroborus解釋,你可以使用CSS屬性選擇。

但是爲了以防萬一,你需要用JS做(這是很多只是一個選項,如果性能是不是一個問題):

documents.filter(function(i, elem){ 
    return elem.attr('id').indexOf('first') == 0; 
}); 
+0

這不會按預期工作,因爲'documents'是一個帶有自己的'filter()'方法的jquery對象。您必須先將jquery對象轉換爲普通數組才能使用此方法。 – Soviut

+0

@Soviut根據jQuery的文檔,過濾器回調接受一個選擇器(就像你用過的那個),**一個函數(就像我用過的一個* [編輯缺少的索引] *)**,要匹配的DOM元素或者一個jQuery對象來匹配。 – GMaiolo