我确定我会为此失去一些代表点,因为这是一个如此基本的问题,但我无法弄清楚我在使用“#”通过 id 选择的 jQuery 选择器上做错了什么。
鉴于我的文档中的这个元素:
<%= Html.CheckBox("IsAlwaysValid", true,
new { onchange = "showHideValidSetList()", id = "IsAlwaysValidCheckBox" })%>
(输出以下标记:
<input checked="checked" id="IsAlwaysValidCheckBox" name="IsAlwaysValid" onchange="showHideValidSetList()" type="checkbox" value="true" /><input name="IsAlwaysValid" type="hidden" value="false" />
)
然后这个函数使用 jQuery 选择器:
<script type="text/javascript">
function showHideValidSetList() {
if ($("#IsAlwaysValidCheckBox").checked) {
alert("IsAlwaysValidCheckBox is checked");
return;
}
else {
alert("IsAlwaysValidCheckBox is NOT checked");
return;
}
}
</script>
应该完全等同于使用 javascript DOM 的这个:
<script type="text/javascript">
function showHideValidSetList() {
if (document.getElementById("IsAlwaysValidCheckBox").checked) {
alert("IsAlwaysValidCheckBox is checked");
return;
}
else {
alert("IsAlwaysValidCheckBox is NOT checked");
return;
}
}
</script>
对?但是 javascript 版本按预期工作,而 jQuery 版本总是采用“else”分支,表明它并没有真正查看复选框的状态。
我究竟做错了什么?
谢谢你陪我。