2017-03-17 58 views
0

我正在使用Scala Play Framework,Twirl和jQuery。如何使用jQuery收集具有相同ID的HTML元素數組?

我有從屬行的動態表時有多少數據是在一個模型:

<table> 
    @for(i <- someDataModel){ //play form containing several fields 
    <tr id="dataRow">@i.name</tr> //display the name field string 
    } 
</table> 

我要收集所有的值在這些行,他們爲了增加一個陣列工藝他們在jQuery中進行CSV導出。

我已經嘗試使用jQuery來收集數據:

$('#dataRow').filter(function() { 
    var array = []; 
    var getData = $('[id="' + this.id + '"]').text(); //get all rows 
    var i; 
    for (i = 0; i < x.length; ++i) { 
    alert(x[i]) //pop up on screen with each value found 
    array.push(x[i]) //add to the array 
    } 
}); 

上面的代碼確實發現所有行的值,但它同時收集所有字符串名稱,將它們合併一起成一個字符串,然後遍歷每個字符。所以它幾乎在那裏,但我只需要價值觀是完整的。

我的問題是我如何迭代遍歷所有這些數據,並將它們添加到一個數組,當所有的行都有相同的ID?

+3

這個_must not_ happen。在整個文檔中,id必須是_unique_。嘗試使用'class'或'rel'作爲:'$(「。dataRow」)'或'$(「[rel ='dataRow']」)' – Psi

+0

HTML元素的id在頁面中應該是唯一的。 – airos

+0

謝謝我將使用類。但即使他們有相同的課程,我將如何收集所有的價值? – DarthBinks911

回答

1

怎麼樣,而不是這樣做:

var getData = $('[id="' + this.id + '"]').text(); 

你做這樣的事情:

var getData = $('[id="' + this.id + '"]').each(function(){ 
    var value = $(this).text(); 
    alert(value); 
    array.push(value) 
}); 

人們在評論是正確的,你需要使用類。然後,您可以使用.className而不是選擇id屬性,但在這種情況下,它並不重要。如果你真的想要有超過1個唯一的ID,那麼你做錯了。

相關問題