簡體   English   中英

單擊時獲取表行ID並根據ID更新特定的數組值。

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM