解决方案 »

  1.   

    我自己已经解决了,是jquery版本的问题
      

  2.   

    if( $( #XXX )[0].checked)
      

  3.   

    checked 也是选中的一种属性。和true一样
      

  4.   

    我想多插一句,如果他返回的是一个true 那么可能就有问题了
    checked的属性值就是checked.
      

  5.   


    版主说的对!元素直接属性和attribute属相值是不一样的,这个叫什么来着?attribute和property,管他呢。checkbox元素的checked属性(attributeNode的值)确实是字符串类型的"checked",或者null,而且不管它当前是checked还是未checked,本人刚刚测试了,即使removeAttribute,人家照样是checked的,这一点好奇怪。要想让它勾上,setAttribute("checked","checked")也竟然不起作用。使用checkbox.checked = true;这才勾上了。所以,猜测jQuery的attr不单单是set/getAttribute的简单封装,对radio、checkbox还是做了特殊处理的。一个简单的例子是:<a href="index.html" id="anchor"></a>
    <script>
    var anchor = document.getElementById("anchor");
    alert(anchor.href);
    alert(anchor.getAttribute("href"));
    alert($(anchor).attr("href"));
    </script>实验证明,DOM对象直接点出来的属性是经过加工处理的,和写在标签里的同名属性节点的值是不尽相同的。
      

  6.   

    checked 这个属性理论上只要存在就可以 不需要赋值
      

  7.   

    版本问题,·1.6之前返回的是true和false,1.6之后设置了返回checked否则返回undefined。可以用.prop("checked");