<HTML>
<HEAD>
<script>
function set(){
var doms=document.getElementById('dd');
var ipt=document.createElement("input");
ipt.type="text";
ipt.maxlength=50;
ipt.name = "ip";
ipt.value = "111";
doms.appendChild(ipt);
var v = document.getElementsByName("ip")[0].value;
alert(v);
}
</script>
</HEAD> <BODY>
<div id = "dd"></div>
<input type = button value = "set" onclick = "set();"/>
</BODY>
</HTML>结果说没定义。
但是如果用ipt.id,然后后面用ById的话,就可以找到。是什么原因呢?
<HEAD>
<script>
function set(){
var doms=document.getElementById('dd');
var ipt=document.createElement("input");
ipt.type="text";
ipt.maxlength=50;
ipt.name = "ip";
ipt.value = "111";
doms.appendChild(ipt);
var v = document.getElementsByName("ip")[0].value;
alert(v);
}
</script>
</HEAD> <BODY>
<div id = "dd"></div>
<input type = button value = "set" onclick = "set();"/>
</BODY>
</HTML>结果说没定义。
但是如果用ipt.id,然后后面用ById的话,就可以找到。是什么原因呢?
var v = document.getElementsByName("ip")[0].value;
并没有name为ip的代码
可以这样写try{
ipt=document.createElement("<input name='ip' />"); // IE
}catch(e){
ipt=document.createElement("input"); // FF
ipt.name="ip";
}
MSDN原文如此:
Attributes can be included with the sTag as long as the entire string is valid HTML. You should do this if you wish to include the NAME attribute at run time on objects created with the createElement method.
创建元素的时候可以,在创建的时候指定名字。function set(){ var doms=document.getElementById('dd'); var ipt = document.createElement("<input name='ip' />");
doms.appendChild(ipt);
ipt.type="text";
ipt.maxlength=50;
ipt.value = "111";
var v = document.getElementsByName("ip")[0].value;
alert(v);
}
<HTML>
<HEAD>
<script>
function set(){
var doms=document.getElementById('dd'); var ipt=document.createElement("input");
ipt.type="text";
ipt.maxlength=50;
ipt.name = "ip";
ipt.value = "111";
doms.appendChild(ipt);
var v = document.getElementsByName("ip")[0].value;
alert(v);
}
</script>
</HEAD> <BODY>
<div id = "dd"> </div>
<input type = button value = "set" onclick = "set();" name="ip"/>
</BODY>
</HTML>
我这样改后点击set 弹出个对话框 内容是set 并且得到一个111
var ipt=document.createElement("<input name='ip'>");
<HTML>
<HEAD>
<script>
function set(){
var doms=document.getElementById('dd'); var ipt=document.createElement("<input name='ip' />");
ipt.type="text";
ipt.maxlength=50;
ipt.value = "111";
doms.appendChild(ipt);
var v = document.getElementsByName('ip')[0].value;
alert(v); }
</script>
</HEAD> <BODY>
<div id = "dd"> </div>
<input type = button value = "set" onclick = "set();"/>
</BODY>
</HTML>
---------- 给分 --------------
火狐下不支持啊.