我想通过checkbox来实现某一项内容(循环输出显示的)的展开和隐藏,但是我下面的写法只能实现第一个item的展开和隐藏,因为刚开始接触WEB,不是很熟悉,望大家给个建议<input type="checkbox" name="check_s" id="check_s" checked="checked" onclick="check(this.id)" /> 
{{for s in test:}}
        <div id="show_hidden" >{{=XML(test.name)}}</div>function check(action){
var b = document.getElementById(action);
if (b.checked==true)
{
document.getElementById("show_hidden").style.display='block';

}
else
{
document.getElementById("show_hidden").style.display='none';

}
}

解决方案 »

  1.   

    <div id="show_hidden" >{{=XML(s.name)}}</div>
    上面那句写错了
      

  2.   


    比如我从数据库读出 学号,姓名 这两项并通过循环输出到前台,然后通过点击checkbox来实现 姓名这项内容的展开和隐藏,就是伸缩功能把……我的这段代码有多个相同的ID=‘show_hidden’,但是只对第一个ID起了作用……原因应该是这个吧……也就是说我要通过获取不同的ID来实现么?循环输出到前台的代码,这是用python语言实现的{{for s in test:}}
    <div>{{=s.number}}</div>
    <div id="show_hidden" >{{=XML(s.name)}}</div>
    {{pass}}函数调用代码<input type="checkbox" name="check_s" id="check_s" checked="checked" onclick="check(this.id)" /> JS代码,先判断checkbox的属性,然后对ID=‘show_hidden’的元素实现展开和隐藏功能function check(action){            
            var b = document.getElementById(action);
                if (b.checked==true)
            {            
                document.getElementById("show_hidden").style.display='block';
                
                }
            else
            {
                document.getElementById("show_hidden").style.display='none';
                
                }
                }
      

  3.   

    id肯定要不一样啊,不过不用通过ID获取
    <input type="checkbox" name="check_s" id="check_s" checked="checked" onclick="check(this)" />
    function check(obj){            
                if (obj.checked==true)
            {            
                obj.style.display='block';
                
                }
            else
            {
                obj.style.display='none';
                
                }
                }
      

  4.   

    <input type="checkbox" name="check_s" id="check_s" checked="checked" onclick="check(this)" />
    function check(obj){            
                if (obj.checked==true)
            {            
                obj.style.display='block';
                
                }
            else
            {
                obj.style.display='none';
                
                }
                }传递当前对象就行,对当前对象操作
      

  5.   


    先谢过,也就是说ID不能一样……
    但是按照你的写法的话是对checkbox进行操作,而我想要的效果是通过点击checkbox来实现 姓名或学号这个内容的隐藏或展开的……