我的单选按钮:
<input type="radio" name="radio-269" value="Purchase Only" />
<input type="radio" name="radio-269" value="Sale Only" />
<input type="radio" name="radio-269" value="Purchase and Sale" />
然后我的divs:
<div id="sale">
SALE!
</div>
<div id="purchase">
PURCHASE!
</div>
最后我的javascript:
<script>
$("input[name='radio-269']").change(function() {
if ($(this).val() == "Purchase and Sale") {
$('#purchase').removeClass("hidden");
}
else {
$('#purchase').addClass("hidden");
}
if ($(this).val() == "Purchase Only" || $(this).val() == "Sale Only") {
$('#purchase').removeClass("hidden");
}
else {
$('#purchase').addClass("hidden");
}
});
</script>
如何更改它以便发生以下情况:
请有人向我展示修改我的javascript以实现此目的的最佳方法吗?
答案 0 :(得分:2)
在你的例子中,看起来你的电线有点交叉了。这应该有效:
$("input[name='radio-269']").change(function() {
if ($(this).val() == "Purchase Only") {
$('#purchase').removeClass("hidden");
$('#sale').addClass("hidden");
}
else if ($(this).val() == "Sale Only") {
$('#sale').removeClass("hidden");
$('#purchase').addClass("hidden");
}
else if ($(this).val() == "Purchase and Sale") {
$('#sale').removeClass("hidden");
$('#purchase').removeClass("hidden");
}
});
这是一个表明它有效的JS小提琴:http://jsfiddle.net/yYBSV/1/
答案 1 :(得分:0)
您可以使用 HTML-5 data-attributes
来保存相应的ID
<input type="radio" name="radio-269" value="Purchase Only" data-id="#purchase" />
<input type="radio" name="radio-269" value="Sale Only" data-id="#sale" />
<input type="radio" name="radio-269" value="Purchase and Sale"
data-id="#purchase,#sale" />
<div id="sale">
SALE!
</div>
<div id="purchase">
PURCHASE!
</div>
<强> JS
$("input[name='radio-269']").change(function() {
$('div').hide();
var id = $(this).data('id');
$(id).show();
});
<强> Check Fiddle
答案 2 :(得分:0)
将您的javascript更改为:
$("input[name='radio-269']").change(function() {
$('#sale, #purchase').removeClass("hidden");
if ($(this).val() == "Purchase Only") {
$('#sale').addClass("hidden");
}
if($(this).val() == "Sale Only") {
$('#purchase').addClass("hidden");
}
});
这是一个jsFiddle:http://jsfiddle.net/scaillerie/2meM5/。
答案 3 :(得分:0)
好像你只需要修改你的if / else语句来让你的代码工作。虽然我建议不要使用val()和纯文本来进行检测。如果您更改了html值,代码就会中断。 (它会更频繁地发生,然后你会想到)
解决方案应该看起来像这样:
$("input[name='radio-269']").change(function() {
if ($(this).val() == "Purchase and Sale") {
$('#purchase').show();
$('#sale').show();
}else if ($(this).val() == "Sale Only") {
$('#purchase').hide();
$('#sale').show();
}else if ($(this).val() == "Purchase Only") {
$('#purchase').show();
$('#sale').hide();
}
});