私は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();
});