日期:2014-05-17  浏览次数:20435 次

jquery $("#nam") 获取不到js生成的html的id ?? 高手进来看下代码!
大家可直接复制我代码到php文件里面 测试一下! 意思就是: 我用js生成了一个html 文本框,id值是nam! 拿jquery获取不到这个id 但是我在本来页面也写了一个文本框,id值是ad, 拿同样的jquery 就能获取到! 这是为什么? 我用什么办法可以获取到这个id='nam' 的id?

PHP code

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="../js/jquery-1.6.1.min.js"></script>

<body>
 <div id="d"></div>
<input type="button" id="b"  value="添加出库单" onClick="add()"/>
<input type="text" name="ad"  id="ad" />

</body>
</html>
<script language="javascript">
//添加模块
var ii = 1;
function add(){//执行块添加
dv=document.createElement("div"); 
dv.id="div_"+ii;

tab=document.createElement("div");
tab.innerHTML='<table bgcolor="#E6F3DE" ><tr><td>货物名称:</td><td colspan="2"><input type="text" id="nam" size="15" /></td></tr></table>'
dv.appendChild(tab);

delbtn=document.createElement("input");
delbtn.type="button";
delbtn.value="删除该出库单";
delbtn.onclick=del;

dv.appendChild(delbtn);

document.getElementById("d").appendChild(dv);

ii = ii + 1;
}
//删除添加的块
function del(){

 document.getElementById("d").removeChild(this.parentNode);
 ii=ii-1;

}

//获取 js 添加的框的id,获取不到
$(function(){
    $("#nam").bind("blur",function()
        {        
        alert('msg');
        })
})

//获取原本的input的id  可以获取到!
$(function(){
    $("#ad").bind("blur",function()
        {        
        alert('msg');
        })
})

</script>



------解决方案--------------------
//setTimeout 一下,或者用blur这个方法
$(function(){
$("#nam").bind("blur",function()
{
alert('msg');
})
})

//获取原本的input的id 可以获取到!
$(function(){
$("#ad").bind("blur",function()
{
alert('msg');
})
})


------解决方案--------------------
setTimeout(function(){//刚才那些邦定代码},10);
如果还不行,打印$("#nam")或consle.log() 不管什么程序要学会调试就好办了,,问题都能解决的,,
------解决方案--------------------
bind 改成 live
可以参考jquery手册具体区别
$("#nam").live("blur",function()
{
alert('msg');
})