js如何获取动态生成的ID值 javascriptfunctionjs数据库 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 id原则上不能重复 getElementById只会获取第一个 将事件绑定到父元素上 赢代理吧 为每个checkbox绑定一个事件消耗资源稍微有点浪费 @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"; } } <input>标签的id值是不相同的,<div>中的id值才是相同的,并且我这个页面有两个这样的<input> <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呢? 还是将每个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; } } 将上面的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进行操作 } } function show() { this.s.parentNode.getElementsByTagName('div')[0].style.display = 'block'; } function hidden() { this.s.parentNode.getElementsByTagName('div')[0].style.display = "none"; } 这样的结构关系如何获取A标签的id值? 【求助】QueryString的一个问题和Ajax的onreadystatechange的一个问题 正则之中文替换请教 如何检测字符串里有"\n",请高手进! 复选框控制显示的问题! 菜鸟问题,得到答案就给分 单选钮如何记录选择的行? 请问那有好的javascript教程下载? 请帮忙解决一下问题! 怎么在Body之内起动这个方法. JS子窗口调用父窗口元素问题 关于正则表达式的问题,急求大虾帮忙!
{
<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";
}
}
<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呢?
还是将每个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;
}
}
for(var dd in divs){
if(div[dd].calssName=='div_Style'){
//对每个id用@item.EFFECTIVE_NAME来表示的div进行操作
}
}
{
this.s.parentNode.getElementsByTagName('div')[0].style.display = 'block';
}
function hidden()
{
this.s.parentNode.getElementsByTagName('div')[0].style.display = "none";
}