jquery复选框选中属性和三元运算符

时间:2017-01-19 20:56:50

标签: javascript jquery checkbox properties ternary-operator

  • Windows 7
  • VisualStudio 2015
  • C#.Net MVC
  • jquery 3.1.1

我必须遗漏一些微不足道的东西。我有一个复选框,在其上我设置了一个data元素,其中包含" id"项目的编号(索引)。我有下面的on change方法

 1      $("input#item_IsHere").on("change",
 2          function () {
 3              var index = $(this).data("index");
 4              var checked = $(this).checked === true ? 1 : 0;
 5
 6              console.log("on change: " + $(this).checked);
 7              //...
 8          });

当我点击复选框时,会触发更改方法,并按我的预期设置index。我没想到的是checked的{​​{1}}属性未定义。

我也试过这个小提琴,但小提琴奏效了:/

我在Chrome和Firefox中看到了这一点。当页面加载时,我看到复选框并打开开发人员工具调试器。在调试器中,我在$(this)(lise 6)上设置了一个断点。当我单击复选框时,它会运行到断点并等待。我可以将鼠标悬停在第一个console.log(第3行)上,我可以看到$(this)属性在这种情况下设置为checked

问题是true的值最终为0,var checked的结果为

console.log

哦,我还在第4行做了三元运算符

    on change: undefined

具有相同的结果。

我没看到什么?

1 个答案:

答案 0 :(得分:2)

您应该使用$("input").is(":checked")

var checked = $("input:eq(0)").is(":checked") ? 1 : 0;

console.log(checked);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="checkbox" checked />