[英]Get table row ID and update specific array value based on ID when clicked.
我有一個表,每個TR都給定了一個ID,該ID具有字母和數字值,如下所示:
<tr id="a0">
<td>Content #1</td>
<td><div id="cs"></div></td>
</tr>
<tr id="a1">
<td>Content #2</td>
<td><div id="cs"></div></td>
</tr>
我也有一個數組,其值的數量與TR相同:
var Array = [ 0, 0 ];
單擊div“ cs”時,嘗試使其檢查表行ID並基於此更新數組的特定值。 因此,例如,如果單擊TR a0中的div,則將第一個數組值設置為1,如果單擊TR a1中的div,則將第二個數組值設置為1。
我知道我可以通過做一個巨大的if語句來做到這一點,但是我想知道是否有更好的方法。
抱歉,這句話措辭太糟了。
謝謝!
您可以使用jQuery index
方法獲取緩存的jQuery集合中clicked元素的索引。
var arr = [0, 0];
var $tr = $('tbody tr').on('click', function () {
var i = $tr.index(this);
arr[i] = 1;
});
正如David Thomas在他的評論中提到的那樣,您還可以使用TR DOM Element對象的rowIndex
屬性代替jQuery index
方法。
arr[this.rowIndex] = 1;
這是一種稍微不同的方法-FIDDLE 。
加載頁面時,數組中的值與表中的每個tds相關聯。
然后要讀取數據,只需單擊td即可讀取數據,而無需標簽。
JS
var myarray = new Array ('First', 'Second', 'Third');
for( i=0; i < myarray.length; i++ )
{
$("table tr:nth-child(" + (i+1) + ") td").data( "Stuff", myarray[i] );
}
$( "td" ).click(function(){
alert( $( this ).data( "Stuff") );
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.