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呢?
展开
 我来答
xiliantian
2009-01-13 · TA获得超过1849个赞
知道大有可为答主
回答量:648
采纳率:0%
帮助的人:906万
展开全部
应该还是可以的,只不过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>
xc_jetguo
2009-01-08 · TA获得超过596个赞
知道小有建树答主
回答量:421
采纳率:0%
帮助的人:289万
展开全部
div这个对象,根本就没办法设置name属性
用ID来进行获得就可以了,建议把
getElementsByName换为getElementsByID,试试
或者,直接使用document.all('')也可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xep0825
2009-01-08 · TA获得超过623个赞
知道小有建树答主
回答量:379
采纳率:100%
帮助的人:520万
展开全部
div没有name属性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luoxuejiuye
2009-01-08 · 超过23用户采纳过TA的回答
知道答主
回答量:153
采纳率:0%
帮助的人:74.4万
展开全部
...
div 没有设置 name
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式