
javascript中appendchild和innerHTML分别getElementsByName的问题
varbody=document.getElementsByTagName("body")[0];vardiv=document.createElement("div")...
var body = document.getElementsByTagName("body")[0];
var div = document.createElement( "div" );
div.id = "div_id";
div.name = 'div_name';
div.innerHTML = '<input type="text" value="" name="input_name">';
body.appendChild(div);
以上代码执行后为何分别用
getElementsByName("div_name")[0]
getElementsByName("input_name")[0]
为何只能取到 input, 但取不到div 呢?
或者我举错例子了,其实我是想问,假设同样是 input 为何,appendChild 的input getElementsByName就不能取到,而用innerHTML 方式加进去的 input ,就可以通过getElementsByName取得该input呢? 展开
var div = document.createElement( "div" );
div.id = "div_id";
div.name = 'div_name';
div.innerHTML = '<input type="text" value="" name="input_name">';
body.appendChild(div);
以上代码执行后为何分别用
getElementsByName("div_name")[0]
getElementsByName("input_name")[0]
为何只能取到 input, 但取不到div 呢?
或者我举错例子了,其实我是想问,假设同样是 input 为何,appendChild 的input getElementsByName就不能取到,而用innerHTML 方式加进去的 input ,就可以通过getElementsByName取得该input呢? 展开
4个回答
展开全部
应该还是可以的,只不过input在使用createElement时稍微有些特殊,验证代码如下:
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script>
function get(){
var inputObj1 = document.createElement( "<input type=\"text\" name=\"createInput\" value=\"createInput\">");
document.getElementById("div1").appendChild(inputObj1);
alert("createInput="+document.getElementsByName("createInput")[0] +" innerHtmlInput="+document.getElementsByName("innerHtmlInput")[0] );
}
</script>
</HEAD>
<BODY>
<div id="div1"></div>
<script>
var inputObj2 ="<input name=\"innerHtmlInput\" value=\"innerHTMLinput\" type=\"text\">";
document.getElementById("div1").innerHTML = inputObj2;
</script>
<input type="button" onclick="get()" value="get">
</BODY>
</HTML>
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script>
function get(){
var inputObj1 = document.createElement( "<input type=\"text\" name=\"createInput\" value=\"createInput\">");
document.getElementById("div1").appendChild(inputObj1);
alert("createInput="+document.getElementsByName("createInput")[0] +" innerHtmlInput="+document.getElementsByName("innerHtmlInput")[0] );
}
</script>
</HEAD>
<BODY>
<div id="div1"></div>
<script>
var inputObj2 ="<input name=\"innerHtmlInput\" value=\"innerHTMLinput\" type=\"text\">";
document.getElementById("div1").innerHTML = inputObj2;
</script>
<input type="button" onclick="get()" value="get">
</BODY>
</HTML>
展开全部
div这个对象,根本就没办法设置name属性
用ID来进行获得就可以了,建议把
getElementsByName换为getElementsByID,试试
或者,直接使用document.all('')也可以
用ID来进行获得就可以了,建议把
getElementsByName换为getElementsByID,试试
或者,直接使用document.all('')也可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
div没有name属性
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
...
div 没有设置 name
div 没有设置 name
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询