jquery复选框选中的属性和三元运算符[重复]
Posted
技术标签:
【中文标题】jquery复选框选中的属性和三元运算符[重复]【英文标题】:jquery checkbox checked property and ternary operator [duplicate] 【发布时间】:2017-06-04 17:28:43 【问题描述】: 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
会按照我的预期设置。没想到$(this)
的checked
属性是未定义的。
我也为此尝试过小提琴,但小提琴奏效了:/
我在 Chrome 和 Firefox 中看到了这一点。当页面加载时,我看到复选框并调出开发人员工具调试器。在调试器中,我在console.log
(lise 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;
结果相同。
我没看到什么?
【问题讨论】:
jQuery 中没有函数checked
。改用这个$(this).is(':checked')
。
【参考方案1】:
你应该使用$("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 />
【讨论】:
叹息,我在发布问题之前尝试了.is(":checked")
,但它失败了......我刚刚再次运行它并且它有效。谢谢大家。
没问题,请将此问题标记为已回答
是的,可以,但它已被标记为重复。还是谢谢你。以上是关于jquery复选框选中的属性和三元运算符[重复]的主要内容,如果未能解决你的问题,请参考以下文章