jquery随之选择

时间:2013-03-27 21:27:24

标签: javascript jquery

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

2 个答案:

答案 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 添加到您的表格中,因为我认为这是您的意图。

Demo

$('#SHourDivTable tr select').each(function(i,select) {
    $(select).attr('id','select'+i);
});