大家可直接复制我代码到php文件里面 测试一下! 意思就是: 我用js生成了一个html 文本框,id值是nam! 拿jquery获取不到这个id 但是我在本来页面也写了一个文本框,id值是ad, 拿同样的jquery 就能获取到! 这是为什么? 我用什么办法可以获取到这个id='nam' 的id?
<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>
<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>
<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;$("#nam").bind("blur",function()
{
alert('msg');
})}
//删除添加的块
function del(){ document.getElementById("d").removeChild(this.parentNode);
ii=ii-1;}//获取 js 添加的框的id,获取不到
$(function(){
})//获取原本的input的id 可以获取到!
$(function(){
$("#ad").bind("blur",function()
{
alert('msg');
})
})</script>
$("#nam").bind("blur",function()
{
alert('msg');
})是在下面的
//获取 js 添加的框的id,获取不到
$(function(){
})里的!
$("#nam").live("blur",function()
{
alert('msg');
})})
你把放到下面 不是 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;
}
add();
live的话是无论什么时候只要有这个ID的标签,执行过这个方法后,就默认以后的所有的ID为这个的标签都有了这个事件
不知道这样说你明白不,
是由于你JQ取时还没有激发onClick="add()" 这个行为。所以那时候根本还没有创建NAM这个对象。当然取不到。
live 不论里面的元素怎么添加修改都能捕获到
想了解详细点 百度下 事件委派 等相关吧