Re: [問題] 用DOM新增的元素抓不到值?
※ 引述《thirteeen (13)》之銘言:
: 有耶 我有在送出的扭上呼叫測試的那段
: <input name="send_sql" type="submit" id="send_sql" value="確定" onClick="getall()">
: 但是還是抓不到 我的allclass1_text.length都一直是原本的數量
: dom新增的還是找不到說
我一開始用火狐都正常,後來測一下才知道...
Firefox 正確
Google Chrome 正確
IE 新增的抓不到,見鬼XDDD
找了些資料,IE沒辦法動態設定name
http://www.easy-reader.net/archives/2005/09/02/death-to-bad-dom-implementations/
有IE的解決方式,不過解法在其他瀏覽器會掛掉
只好分開寫 囧
把測試頁改成下面這樣就可以了
大量用的話,可能也把新增物件再獨立出來會方便些
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5" />
<script>
var count=0;
function del1()
{
alert('XD')
}
function append(){
var div1=document.createElement("div");
div1.id="div"+count;
div1.name="div"+count;
var text_num;
if(document.all)
{ //IE
text_num=document.createElement('<INPUT name="class1_text">');
}
else
{
text_num=document.createElement('INPUT');
text_num.name="class1_text";
}
text_num.type="text";
text_num.value="其他類";
text_num.id="text"+count;
div1.appendChild(text_num);
var db1_num=document.createElement("INPUT");
db1_num.type="button";
db1_num.id="dbc"+count;
db1_num.value="刪除";
db1_num.name="dbc"+count;
db1_num.onclick=del1;
div1.appendChild(db1_num);
var AD = document.getElementById("alldiv");
AD.appendChild(div1);
count++;
}
function getall()
{
var allclass1_text=document.getElementsByName("class1_text");
alert('length:'+allclass1_text.length);
for(i=0;i<allclass1_text.length;i++)
alert(allclass1_text[i].value);
}
</script>
</head>
<body>
<input type="button" value=" new " onclick="append()">
<input type="button" value=" get " onclick="getall()">
<div id="alldiv">
<input type="text" value="1" name="class1_text">
<input type="text" value="2" name="class1_text">
</div>
</body>
</html>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.71.4.142
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章