javascript - jquery复选框检查属性和三元运算符

标签 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 $(this)的属性(property)将是未定义的。

我也尝试过使用 fiddle ,但 fiddle 有效:/

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

问题在于 var checked 的值最终为 0,console.log 的结果是

    on change: undefined

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

    var checked = $(this).checked ? 1 : 0;
and
    var checked = $(this).is(":checked") ? 1 : 0;
and
    if ($(this).checked) {
        checked = 1;
    } else {
        checked = 0;
    }

结果相同。

我没有看到什么?

最佳答案

您应该使用$("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 />

关于javascript - jquery复选框检查属性和三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41751552/

相关文章:

javascript - 如何从控制台隐藏脚本?

刷新页面时php curl请求不关闭

jquery - 解析 Facebook 评论

android - 单击列表项更改复选框状态?

android - 错误膨胀类android.widget.checkbox

javascript - jQuery、Javascript : Javascript wrapped in jQuery(), $() - 这是什么意思?

javascript - Node-Firebird 无效的事务句柄

javascript - 重置单选按钮并使用 jQuery 检查

twitter-bootstrap - 如何将 Bootstrap 工具提示添加到复选框?

javascript - 如何使用尚未安装的 Node 模块而不出现错误?