解决方案 »

  1.   

    id原则上不能重复 getElementById只会获取第一个  将事件绑定到父元素上 赢代理吧  为每个checkbox绑定一个事件消耗资源稍微有点浪费 
      

  2.   

                      @foreach (var item in Model.effModel)
                    {
                            <input type="checkbox" id="@item.EFFECTIVE_ID" name="checkeff" value="@item.EFFECTIVE_ID"                   onmouseout="hidden()" onmousemove="show()"/>
                            <span>@item.EFFECTIVE_NAME</span>
                            <div id="note" style="display:none; position:absolute;z-index:1;" >@item.NOTE</div>                           
                    } </td>
    请教一下,这种创建标签的方式没见过,用什么语言?
    一楼的意思就是你这种创建的方式得到的所有的chekbox具有相同的id,这种情况就相当于下面的一个例子:
      <input type=''checkbox' id='check' name='checkoff' value='check1' />
      <input type=''checkbox' id='check' name='checkoff' value='check2' />
      <input type=''checkbox' id='check' name='checkoff' value='check3' />
      <input type=''checkbox' id='check' name='checkoff' value='check4' />
      <input type=''checkbox' id='check' name='checkoff' value='check5' />'
    当为上面的复选框指定事件是这样做的(按照你那种创建方式):
      var check='document.getElementById('check');
      'check.onmouseout=hidden;
       check.onmouseover=show;
    你可以看到了,因为id名称相同,执行事件的时候肯定不可能同时多可执行,所以只会选择执行第一个
     一般在一个页面中是不允许id名称相同的,这样做麻烦太多另解:
      window.onload(){
         var checkboxs=document.getElementsByTagName('input');
         for(var i=0;i<checkboxs.length;i++){   //将你动态创建的标签再次循环一遍,避免使用了相同的id
             if(i){
                checkboxs[i].onmouserover=show;
                checkboxs[i].onmouseover=hidden;
             }
         }
         function show()
        {
            document.getElementById("note").style.display = "block";
        }
        function hidden()
        {
             
            document.getElementById("note").style.display = "none";
        }
      }
      

  3.   

    <input>标签的id值是不相同的,<div>中的id值才是相同的,并且我这个页面有两个这样的<input>
      

  4.   


    <input type="checkbox" id="@item.EFFECTIVE_ID" name="checkeff" value="@item.EFFECTIVE_ID" onmouseout="hidden()" onmousemove="show()" />
                            <span>@item.EFFECTIVE_NAME</span>                                                 
                            <div id="@item.EFFECTIVE_NAME" style="display:none; position:absolute;z-index:1;" >@item.NOTE</div>我如果把<div>的id用@item.EFFECTIVE_NAME来表示,该如何把这个值传给js呢?
      

  5.   


    还是将每个checkbox在循环一次    var inputs=document.getElementsByTagName('input'); //得到所有的input标签
        for(var i=0;i<inputs.length;i++){   //将你动态创建的标签再次循环一遍,避免使用了相同的id
              if(inputs.getAttribute('type')=='checkbox'){   //通过判断取出type='checkbox' 的input标签
                inputs[i].onmouserover=show;
                inputs[i].onmouseover=hidden;
              }  
         }
      

  6.   

    将上面的style="display:none; position:absolute;z-index:1;"替换为 class='div_Style'   var divs=document.getElementsByTagname('div');
       for(var dd in divs){
           if(div[dd].calssName=='div_Style'){
               //对每个id用@item.EFFECTIVE_NAME来表示的div进行操作
           }
       }
      

  7.   

    function show()
        {
            this.s.parentNode.getElementsByTagName('div')[0].style.display = 'block';
        }
        function hidden()
        {
             
            this.s.parentNode.getElementsByTagName('div')[0].style.display = "none";
        }