我想1)如果选中(“#one”)并且未检查(“#two”)则显示警告。如果两者都被选中,则显示不同的警报。我的第一部分是正确的,然后在第二部分显示两个警报。
$("#one").click(function() {
if($(this).is(":checked") && $("#two").is(":not(:checked)")) {
alert("foo");
} else {
if($(this).is(":checked") && $("#two").is(":checked")) {
alert("foo foo");
}
}
});
答案 0 :(得分:3)
我认为你过度复杂了。
$("#one").click(function() {
var thisIsChecked = this.checked,
twoisChecked = $('#two').get(0).checked;
if(thisIsChecked) {
if (twoisChecked) {
alert('foo foo'); // <----
} // | note the switch
else { // |
alert('foo'); // <----
}
}
});
答案 1 :(得分:1)
$("#one").click(function() {
if(this.checked) {
var $two = $("#two");
if (!$two.is(":checked")) {
alert("foo");
} else {
alert("foo foo");
}
}
});
答案 2 :(得分:1)
对我来说很好看。此处的示例示例:http://jsfiddle.net/andypaxo/9vJGL/
这是你想要的行为吗?
答案 3 :(得分:1)
HTML:
<form>
<input id="one" type="checkbox" />
<input id="two" type="checkbox" />
</form>
JS:
var one = $("#one");
var two = $("#two");
one.click(function() {
if (one.is(":checked")) {
if (two.is(":checked")) {
alert("foo foo");
} else {
alert("foo");
}
}
});
答案 4 :(得分:1)
我会重构一下以摆脱嵌套的ifs并稍微干一点:
$("#one").click(function() {
if(!this.checked) { return }
var message = $("#two").is(':checked') ? 'foo foo' : 'foo';
alert(message)
});