1

我有这样的 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>

我想分配一个 id 属性来选择每个 tr 内的标签。以下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 标签。

4

2 回答 2

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;
    });
}
于 2013-03-27T21:32:17.230 回答
1

这会将 id 1,2 添加到您的选择元素中。您的标记中有额外的内容,还请记住 id 必须是唯一的!id 的 1 和 2 也是错误的 id - select1、select2 等会更好。

我将 ID SHourDivTable添加 到您的表中,因为我相信这是您的意图。

演示

$('#SHourDivTable tr select').each(function(i,select) {
    $(select).attr('id','select'+i);
});
于 2013-03-27T21:39:10.620 回答