在foreach生成的html表中选择单元格

时间:2012-11-08 16:59:25

标签: javascript html knockout.js

请帮我解决knockout.js代码

我尝试使用id中的select元素并更改它的css样式,但所有行都有相同的id,我不能使用函数getElementById。我怎么能这么简单?

<tbody data-bind="foreach: times">
        <tr>
            <td id=$index() data-bind="click: $root.select.bind($data, $index(), 0)> </td>

        ....

        <td id=$index() data-bind="click: $root.select.bind($data, $index(), 19)> </td>

    <tr>
</tbody>

2 个答案:

答案 0 :(得分:0)

Id应始终是唯一的。将相同的类分配给您感兴趣的所有元素,并使用一些jquery:

document.getElementsByClassName('class_name')
编辑:好点。我原本打算建议使用jquery,然后记住这个功能。如果您使用的是jquery库,也可以尝试:

$('.class_name').each(function(index) {
    ...do something...
});

编辑:要回答您的问题,有几种方法可以做到这一点:

$('.class_name').attr('id', new_id)

$('.class_name').addClass('class_name')

取决于你想要做什么

答案 1 :(得分:0)

尝试使用此类代码:

<tbody data-bind="foreach: times">
    <tr>
        <td data-bind="attr: {id: $index()}, click: $root.select.bind($data, $index(), 0)></td>
    <tr>
</tbody>

在此处详细了解attr绑定:http://knockoutjs.com/documentation/attr-binding.html