1

私はDOMをトラバースする方法を学んでいるので、この質問はそれに関連しています。

Coldfusionを使用してデータベースの結果を出力しています。ループは、テーブルの行ではなく、テーブルのデータをループしています。各テーブル内には、さまざまなajax呼び出しを実行するためのボタンがあります(私はすでにこれを機能させています)。ボタンがクリックされたときに、アニメーションスピナーを表示または切り替えて、ユーザーが何かが起こっていることを認識し、ajax呼び出しが完了したときに非表示または切り替えたいと思います。基本的に、スピナーを切り替えるには、スピナーを識別するためのヘルプが必要です。 IDは一意ではありません

私の最初の試みは、クリックされたボタンのクローゼットスパンタグを見つけることでした。私はそれがうまくいかない。2番目の試みは、.parent()を使用してTDを取得し、そこから.next()を使用してスパンタグを見つけ、それを切り替えることができるようにすることでした。私もそれを機能させることができませんでした。ここに書き留めた後、next()は正しいオプションではないかもしれませんが、繰り返しになりますが、私はまだDOMをトラバースする方法を学んでいます。:)

注:以下のコードはデフォルトでスピナーを示していますが、jQueryのトグル関数を介してスピナーを非表示にする関数がここには示されていません。

<table cellpadding="3" class="tablesorter" id="table_id">
<tr>
    <th class="form"><label>System Name</label></th>
    <td>
        <button type="button" id="removeButton" class="fg-button ui-state-default ui-corner-all remove_SystemName" >Remove</button>
        <button type="button" id="checkButton" class="fg-button ui-state-default ui-corner-all check_SystemName" >Check</button>
        <span id="statusInfoDiv" class="statusInfoDiv"><img src="/assets/images/working.gif"> Working...</span></td>
</tr>

jQueryオプション1試してみました

$(".check_SystemName").live("click", function(){
var spinner = $(this).closest('span').find("statusInfoDiv");
spinner.toggle();
});

jQueryオプション2試してみました

$(".check_SystemName").live("click", function(){
var spinner = $("this").parent().next(".statusInfoDiv");
spinner.toggle();
});
4

1 に答える 1

0

親を使用してDOMを「上」にトラバースする必要があります...次に、子供または兄弟を使用してDOMを「下」にトラバースできます。

だからあなたは次のようなことをすることができます:

$(this).parent().children('.statusInfoDiv').toggle();
于 2011-03-09T16:44:55.590 に答える