0

私はテーブルを操作していますが、現在の行と次の行を操作する必要があります。私の関数は次のようになります。

function test(row) {
    alert(row.id); //it gives me the current row id, it works.
    nextrow = row.nextSibling.nextSibling; //not sure why, but i have to use it twice to get the right one.
    alert(nextrow.id); //this gives me the next row's id, also works.
    alert(row.id); //this also gives me the next row's id...it should give me the current one.
}

実際のオブジェクトをどこかに保存して、変更されないようにすることができれば、何か考えはありますか? ありがとうございました。

4

1 に答える 1

0

HTML の nextSibling プロパティは、テキスト、改行、コメントを含む次の兄弟ノードを返します。

そのため、おそらく 2 回呼び出す必要があります。

変更されるという事実についてはrow.id、コードを再確認することをお勧めします。row または row.id の影響がない場合、コードの 1 行目と 4 行目の間で row.id が変更されることはありません。それはあなたの本当のコードですか、それとも可読性を高めるために配置されたコードですか?

DOM 操作については、可能であれば jQuery を使用することを強くお勧めします。これは、DOM 操作を非常に簡単にする、非常にシンプルで強力なライブラリーです。

コンテキストで使用できない場合はnextRow、TR を引数として受け取り、次の TR を返すユーティリティ メソッドを作成する必要があります。タグ名が実際に TR であるノードが見つかるまで、nextSibling プロパティを使用します。

于 2012-05-21T12:50:50.633 に答える