2

次の HTML についてアドバイスが必要です。

<!-- Beginning of ROW !-->
<div id="row1">
 <div id="entry">
  free
  <span>some text</span>
  <p>DKK</p>
  <input type="radio" name="red<% Response.Write(counter); %>" id="radio" value="0" />
 </div>

 <div id="entry">
  week
  <span></span>
  <p>DKK</p>
  <input type="radio" name="red<% Response.Write(counter); %>" id="radio2" value="75" />
 </div>
</div>
<!-- End of ROW !-->

<!-- Beginning of ROW !-->
<div id="row2">
 .... same as in row 1
</div>
<!-- End of ROW !-->

nth row ..

jQuery は次のとおりです。

$("input").click(function() {
     $("input").parent("div").css("background", "url(images/div_bg.png)");
     $(this).parent("div").css("background", "url(images/div_bg_hover.png)");
});

私がやろうとしていること:ラジオ入力を選択すると、それが配置されているdivの背景が変更され、行が1つしかない場合は完全に機能しますが、たとえば、最初の行で値を選択しようとすると、 2 行目の値を選択します。

ラジオ入力が配置されている 2 行目の div は、必要に応じて背景を変更しますが、最初の行の div は入力がチェックされたままですが、他の背景に反転します。これが私が達成しようとしているものです

代替テキスト

そして、ここに私が達成するものがあります:

代替テキスト

4

3 に答える 3

3

jquery の 2 行目の目的は何ですか?

$("input").parent("div").css("background", "url(images/div_bg.png)");

これにより、すべての「エントリ」div の背景がリセットされます。私があなたの目的を正しく理解していれば、あなたは次のことを望んでいると思います:

$(this).parent("div").siblings("div.entry").css("background", "url(images/div_bg.png)");

そうすれば、変更中のエントリの兄弟のみが背景をリセットされます。

余談ですが、同じ id を持つ複数の div がありますが、これは良い考えではありません。

于 2009-09-09T21:24:25.067 に答える
0

この行:$("input").parent("div").css("background", "url(images/div_bg.png)"他のすべてのアイテムを通常の状態にリセットし、一度に 1 つのアクティブな状態しか持てないようにします。各行に 1 つのアイテムが選択されるように、行にスコープを設定できます。

于 2009-09-09T21:21:24.533 に答える
0

選択したすべての入力ボックスではなく、クリックされたアイテムにのみ動作を割り当てています。関数を次のように作成したい場合があります。

function foo()
{
   $('input :selected').css(bar);
}

入力イベントでクリック イベントを取得するたびに、バーを呼び出します。仕様に合わせて foo を変更する必要がある場合があります。

于 2009-09-09T21:21:56.767 に答える