javascript中appendchild和innerHTML分别getElementsByName的问题

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呢?
应该还是可以的,只不过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>
div这顷闹个对象戚乎派,根本就没办法设置name属性
用ID来进行获得就可以了,建议高贺把
getElementsByName换为getElementsByID,试试
或者,直接使用document.all('')也可以
div没有name属性
...
div 没有设置 name