我真的卡住了......我需要紧急的建议:D这里是我的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应该改变背景,如果只有一行,它会完美地工作,但是例如,如果我尝试选择第一行中的值然后我在第二行中选择值..无线电输入所在的第二行中的div会改变背景,但第一行中的div会反转到其他背景,尽管输入仍然被检查..这是我想要实现的
这就是我所取得的成就:
你的第二行jquery的目的是什么?
$("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,这不是一个好主意。
这一行:$("input").parent("div").css("background", "url(images/div_bg.png)"
导致所有其他项目重置为正常,允许您一次只有1个活动状态。您可以将其范围限定为行,以便每行可以选择一个项目。
您只是为单击的项目而不是所有选定的输入框分配行为。你可能想要这样做一个函数:
function foo()
{
$('input :selected').css(bar);
}
现在,只要您在输入事件上获得click事件,就可以调用bar。您可能需要修改foo以符合您的规范。