为何无法通过getElementsByName()获取对象? var area=document.createElement('textarea');createElement必须是节点的TAG名称如:INPUT等 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 'textarea'只是你自己要创建的对象的属性 程序是不认的 <script language="javascript">function addtextarea(){ for(var i=0;i <3;i++){ var area=document.createElement('textarea'); area.name='textArea'; area.value=i; document.body.appendChild(area); }}function showvalue(){ var area0=document.getElementsByName("textArea")[0].value; var area1=document.getElementsByName("textArea")[1].value; var area2=document.getElementsByName("textArea")[2].value; alert(area0+area1+area2); }</script><body><input type="button" value="add" onclick="addtextarea()"/><input type="button" value="show" onclick="showvalue()"/></body> 3楼的点(show)还是报提示:错误:'document.getElementsByName(...).0.value' 为空或不是对象 我也一直有这样的疑问,动态添加的像是输入框等,通过getElementsByName,都得不到期待答案 动态添加的元素~因为页面上不存在啊~但是你给个ID,根据ID就能得到~ID给的有规律点就可以了譬如你动态的填充了多个input,取名时:<input id="inP1" type="button" value="" /><input id="inP2" type="button" value="" /><input id="inP3" type="button" value="" /><input id="inP4" type="button" value="" />你遍历的时候直接遍历inP+i不就可以了 <script language="javascript">function addtextarea(){ for(var i=0;i <3;i++){ var area=document.createElement('textarea'); area.name='textArea'; area.value=i; area.id='textArea'+i; document.body.appendChild(area); }}function showvalue(){ var area0="";; for(var i=0;i<3;i++) { area0 +=document.getElementById("textArea"+i).value +"||"; } alert(area0); }</script><body><input type="button" value="add" onclick="addtextarea()"/><input type="button" value="show" onclick="showvalue()"/></body> createElement以后在append到一个节点下 然后循环节点下的childNode找到NAME为textarea的对象通过document.getElementById("Append节点ID").childNodes[i].name得到对象NAME 在js中动态创建多个textarea,name均为textArea; for(var i=0;i <3;i++){ var area=document.createElement('textarea'); area.setAttribute=("id","textArea"); //添加ID属性 area.setAttribute=("name","textArea"); //添加name属性 ..... } 用getElementsByName("")却无法获取对象,为何? 提示:错误:'document.getElementsByName(...).0.value' 为空或不是对象 var area0=document.getElementsByName("textArea")[0].value; var area1=document.getElementsByName("textArea")[1].value; var area2=document.getElementsByName("textArea")[2].value; alert(area0+area1+area2); 试试上面的方法,如果还不行,你可以这样取值var area_List = document.getElementsByTagName("textarea") //获取页中所有的textarea元素 for(var i=0;i<area_List.length;i++){ alert(area_List[i].value); } area.setAttribute=("id","textArea"); //添加ID属性 area.setAttribute=("name","textArea"); //添加name属性 手误,把等号去掉 这个似乎是IE7的bug。你用IE8试试。 jquery <table>中<tr>和<td>谁引发事件? javascript 调用 ocx 中的函数问题 帮忙解决一下面试题 各位英雄女侠可否帮一下忙啊!!!!!! 怎么能够让浏览器操纵不了, 直到我要做的事情做完? 如何用js 将htm网页中的表格导出成word或excel? iframe自适应高度的问题 能不能用标准JavaScript实现这个功能? js循环变量问题 求大佬帮助通过js更换主题背景,要求如下 200分求隐藏referer的方法 使用js将utf-8编码转换成bg2312编码
<script language="javascript">
function addtextarea(){
for(var i=0;i <3;i++){
var area=document.createElement('textarea');
area.name='textArea';
area.value=i;
document.body.appendChild(area);
}
}
function showvalue(){
var area0=document.getElementsByName("textArea")[0].value;
var area1=document.getElementsByName("textArea")[1].value;
var area2=document.getElementsByName("textArea")[2].value;
alert(area0+area1+area2);
}
</script>
<body>
<input type="button" value="add" onclick="addtextarea()"/>
<input type="button" value="show" onclick="showvalue()"/>
</body>
期待答案
因为页面上不存在啊~但是你给个ID,根据ID就能得到~
ID给的有规律点就可以了譬如你动态的填充了多个input,取名时:
<input id="inP1" type="button" value="" />
<input id="inP2" type="button" value="" />
<input id="inP3" type="button" value="" />
<input id="inP4" type="button" value="" />你遍历的时候直接遍历inP+i不就可以了
function addtextarea(){
for(var i=0;i <3;i++){
var area=document.createElement('textarea');
area.name='textArea';
area.value=i;
area.id='textArea'+i;
document.body.appendChild(area);
}
}
function showvalue(){
var area0="";;
for(var i=0;i<3;i++)
{
area0 +=document.getElementById("textArea"+i).value +"||";
} alert(area0);
}
</script>
<body>
<input type="button" value="add" onclick="addtextarea()"/>
<input type="button" value="show" onclick="showvalue()"/>
</body>
通过document.getElementById("Append节点ID").childNodes[i].name得到对象NAME
for(var i=0;i <3;i++){
var area=document.createElement('textarea');
area.setAttribute=("id","textArea"); //添加ID属性
area.setAttribute=("name","textArea"); //添加name属性
.....
}
用getElementsByName("")却无法获取对象,为何?
提示:错误:'document.getElementsByName(...).0.value' 为空或不是对象
var area0=document.getElementsByName("textArea")[0].value;
var area1=document.getElementsByName("textArea")[1].value;
var area2=document.getElementsByName("textArea")[2].value; alert(area0+area1+area2); 试试上面的方法,如果还不行,你可以这样取值
var area_List = document.getElementsByTagName("textarea") //获取页中所有的textarea元素
for(var i=0;i<area_List.length;i++){
alert(area_List[i].value);
}
area.setAttribute=("name","textArea"); //添加name属性
手误,把等号去掉