0

ノックアウト.jsコードで私を助けてください

テーブル内の要素を ID で選択して 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>
4

2 に答える 2

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')

正確に何をしようとしているかに応じて

于 2012-11-08T17:02:59.977 に答える
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をご覧ください。

于 2012-11-08T18:56:23.960 に答える