当打开页面时,我用php的foreach循环动态输出了几个checkbox的选项
<?php foreach ($sectionList as $key => $section): ?>
<?php?>
<li><input type="checkbox" class="cacheSectionSelected" id="checkbox_<?php echo $section->getId() ?>" value="<?php echo $section->getId() ?>" name="cacheSectionSelected[]" ></li>
<?php endforeach; ?>
这个时候没有被勾选上,但我调用其他js函数,比如openSelectOptoin()函数,它会去数据库里判断id = 1是否存在,存在,这时就得将动态添加的checkbox中id与id=1的checkbox的checked=true
部分代码如下:
function openSelectSection(obj) {...
$("#cacheSectionSelected_" + v).each(function(){
                                        $(this).attr("checked",true);
});
}
}
return false;
}
这时其实他是被选上了,但是在网页里确表现为未选上,这是怎么回事呢?我想不明白。难道是因为html是动态的所以不行?
大家帮帮忙,想想是怎么回事呢?

解决方案 »

  1.   

    我试了一下,静态的checkbox也不行...
    究竟是什么原因呀?
      

  2.   

    $(this).attr("checked",true);明明选上了,但是在网页中确没有勾选上。
      

  3.   

    应该可以的,你检查下别的代码呢。
    http://blog.sina.com.cn/s/blog_5a08b1780100duqx.html
      

  4.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <META NAME="Generator" CONTENT="EditPlus">
      <META NAME="Author" CONTENT="">
      <META NAME="Keywords" CONTENT="">
      <META NAME="Description" CONTENT="">
      <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 
      <script>
      $(function(){
      $('#btn').click(function(){
    $('input[type="checkbox"]').each(function(i){
    if(i%2==1)
    {
    $(this).attr('checked',!$(this).attr('checked'));
    }
    })
      })
      })
        </script>
      </HEAD> <BODY>
      <input type='checkbox' />1
        <input type='checkbox' />2
      <input type='checkbox' />3
        <input type='checkbox' />4
      <input type='checkbox' />5
    <input type='button' value='click me' id='btn' />
     </BODY>
    </HTML>
      

  5.   

    $(this)是不是你那个CheckBox对象呢?
    如果 不是的话,最好还是用$("CheckBox的ID").attr("checked","checked");
      

  6.   

    for(var i = 0; i < selects.length; i++) {
    var v = selects[i];
    if (!v) { continue; }
    if ($("#cacheSectionSelected_" + v).val() == v) {
    $("#cacheSectionSelected_" + v).each(function(){

                                            $(this).attr("checked",true);
                                            
    });
    }
    }
    我是这样写的
      

  7.   

    $("#cacheSectionSelected_" + v).each(function(){  $(this).attr("checked",true);
       
    });
    =>$("#cacheSectionSelected_" + v).attr("checked",true);
       
      

  8.   

    首先ID  是唯一的, 你应该命名多个checkbox 的 name 然后 用  $('input[name="xxx"]') 获取多个 name 一致的 checkbox
      

  9.   

    它那个东西是点击按钮就会弹出一个div层,在层上把checkbox显示出来,如果我没有在弹出的div层的话,我在网页原本那层做测试确能勾选上,这个是什么原因呢?
      

  10.   

    问题解决了,不是jquery的问题。谢谢大家