elem.attr()无法正确判断checkbox是否选中

本篇文章由:http://xinpure.com/2015/01/08/%e5%85%b3%e4%ba%8ejquerychecked.attrchecked%e6%97%a0%e6%95%88%e7%9a%84%e9%97%ae%e9%a2%98/

关于Jquery $("#checked").attr("checked") 无效的问题

使用情景: 使用 Jquery 实时验证 input checkbox 是否被选中?

$("#checkedElem").attr("checked") 这是一个非常简单的 Jquery 语句,

意思很明显: 得到 id 为 checkedElem 的元素的 checked 属性值

但是出乎意料的是,不管 checkbox 元素是否被选中,返回的 checked 属性值总是 undefined。

Shen me gui?

这其实是一个元素属性的理解问题:

元素的属性有两种形式 Properties 和 Attributes

Attributes 所指的是在html中直观的表现出来的属性,如: <input type="checkbox" /> 就是指 type 属性。
元素的 Attributes 属性只会保存浏览器在渲染 html 时所赋的初始值.

Properties 则是该元素所有的属性值(包括在 html 中直接写出来和没有写出来的属性值),并且 Properties 会实时更新赋值。如: 当点击一个 checkbox 元素或者选中一个 select 元素的某个 option 时,即改变了该元素的属性值时,Properties 就会更新会当前值。

所以,如果我们并没有在 html 初始化 checked 属性的值的话,$("#checkedElem").attr("checked") 就只能得到 undefined.

而如果我们在 html 初始化 checked 属性值为 checked 的话,$("#checkedElem").attr("checked") 也会一直返回 checked.

总结,$("#checkedElem").attr("checked") 应当修改 $("#checkedElem").prop("checked"), 即可实现相应效果。

时间: 2024-11-03 05:36:24

elem.attr()无法正确判断checkbox是否选中的相关文章

JQuery 判断checkbox是否选中,checkbox全选,获取checkbox选中值

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

jquery 判断checkbox 是否选中

这是一个蛋疼的节奏,以前写的代码现在失效了. jquery 判断checkbox 是否被选中,刚开始我是这样写的,而且没问题 $("#ziduana").attr("checked")=="checked" 后来竟然失效了, 后来试了 $("ziduana").attr("checked")==true  , $("#ziduana").is(":checked")

jq、js中判断checkbox是否选中

最近在开发项目时用到checkbox复选框,其中遇到一个问题:在JQ中如何判断checkbox是否被选中呢?之前用JQ获取元素的属性用的都是attr(),但用在checkbox上却没有用,原因何在??? 1.JS中判断checkbox是否被选中 对于在js中来判断checkbox是否被选中很简单,举个??来说 HTML代码: <input type="checkbox" name="box"> 相应的javascript代码如下: var check =

JQuery判断checkbox是否选中-批量

在html的checkbox里,选中的话会有属性checked="checked". 如果用一个checkbox被选中,alert这个checkbox的属性"checked"的值alert($"#xxx".attr("checked")),会打印出"true",而不是"checked"! 如果没被选中,打印出的是"undefined".觉得很奇怪是吗?继续看下去- 不

jquert 判断checkbox 是否选中

<input type="checkbox" id="IsEnable" /> 在调试的时候,会出现,一直未true的状态,不管是选中还是未选中 解决方法,  标签不能定义  checkbox 默认选中用 $("#IsEnable").prop("checked", true);//设置为选择状态 默认不选中为 $("#IsEnable").prop("checked", f

判断checkbox是否选中

一种是通过jquery A. $("[name='selectUserId']:checked").each(function () { // $(this).attr("value") 被选中的checkbox的value属性(就是adminuser的id) array.push($(this).val());//把所有被选中的id放入数组array }); B. var checkUserName = $("#checkUserName").

jquery和js如何判断checkbox是否选中

jquery: <div id="divId" class="divTable"><div class="tableBody"><ul ><li ><input type="checkbox" value="501" ></li></ul></div></div> $("input[type

jqery和js如何判断checkbox是否选中

jquery: <div id="divId" class="divTable"> <div class="tableBody"> <ul ><li ><input type="checkbox" value="501" ></li></ul> </div> </div> $("input[

jquery判断checkbox是否选中返回的是checked或者是undefined

$('#checkbox').attr('checked'); 返回的是checked或者是undefined,不是原来的true和false了,有关此问题的解决方法如下 在JQ1.6之前的版本,我们会这样写我们的代码: <input type='checkbox' id='cb'/> <script>    //获取是否选中    var isChecked = $('#cb').attr('checked');   //设置选中    $('#cb').attr('checke