我有一个表格,每个TR给出一个带字母+数字值的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&#34; cs&#34;单击,尝试检查表行ID并基于该更新阵列的特定值。因此,例如,如果单击TR a0中的div,则第一个数组值将设置为1,如果单击TR a1中的div,则第二个数组值将设置为1.
我知道我可以通过并做出巨大的if声明来做到这一点,但我想知道是否有更好的方法。
如果措辞严厉,请抱歉。
谢谢!
答案 0 :(得分:2)
您可以使用jQuery index
方法获取缓存的jQuery集合中单击元素的索引。
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;
答案 1 :(得分:0)
这是一种略有不同的方法 - 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") );
});