我有像这样的HTML
<table>
<tr>
<td>
<select>
<option>12AM</option>
<option>11PM</option>
</select>
</td>
<td>
<select>
<option>12AM</option>
<option>11PM</option>
</select>
</td>
</tr>
</table>
我想为每个tr中的select标签分配一个id属性。以下jquery似乎不起作用
function addRow()
{
var rowCount = 0;
$('#SHourDivTable tr').each(function() {
if(rowCount != 0)
{
console.log($(this).html());
$(this).add("select:eq(0)").attr("id", rowCount);
$(this).add("select:eq(1)").attr("id", rowCount);
}
rowCount = rowCount + 1;
});
}
当我运行它时,id属性被分配给tr而不是select tag。
答案 0 :(得分:2)
ID 必须是唯一的。他们也不应该以数字开头。您应该使用data
属性来执行此操作。
我还使用了table
而不是#SHourDivTable
,因为我在标记中看不到带有该ID的表。
最后,您需要find
add
来处理您的工作。
试试这个:
function addRow()
{
var rowCount = 0;
$('table tr').each(function() {
if(rowCount != 0)
{
$(this).find("select:eq(0)").data("rowNumber", rowCount);
$(this).find("select:eq(1)").data("rowNumber", rowCount);
}
rowCount = rowCount + 1;
});
}
答案 1 :(得分:1)
这会将id 1,2添加到您的select元素中。你的标记中还有一个额外的东西,还记得id必须是唯一的! id的1和2也是坏ID - select1,select2等会更好。
我将id SHourDivTable 添加到您的表格中,因为我认为这是您的意图。
$('#SHourDivTable tr select').each(function(i,select) {
$(select).attr('id','select'+i);
});