javascript 不允許變數名稱是 xx[]
http://phorum.study-area.org/index.php/topic,39162.msg196144.html#msg196144...
在 javascript 中
1. 單一值=字串
2. 多個值=物件
(非正規想像)
說回正規 .. 一般正規中 , google 搜尋都會說
name 可以重複 , id 不可重複
其實 id 也可以重複的
<form name=form1>
<input type="checkbox" name="checkbox2" value="checkbox" disabled/>
<a onclick=go()>
<input type="radio" value="1" name="radio">
<input type="radio" value="2" name="radio">
</a>
</form>
<input type=text value=1 id=cc name=ccc xyz=a>
<input type=text value=2 id=cc name=ccc xyz=b>
<script>
function go(){
document.form1.radio[0].checked==true?document.form1.checkbox2.disabled=true:document.form1.checkbox2.disabled=false;
alert("n0="+ccc[0].value+" n1="+ccc[1].value);
alert("g0="+document.getElementsByName("ccc")[0].value+" g1="+document.getElementsByName("ccc")[1].value);
alert("i0="+cc[0].value+" i1="+cc[1].value);
// alert("g0="+document.getElementById("cc")[0].value+" g1="+document.getElementById("cc")[1].value); 無法執行
alert("g0="+document.getElementById("cc").value+" g1="+document.getElementById("cc").value);
alert("g0="+document.getElementsByName("ccc")[0].xyz+" g1="+document.getElementsByName("ccc")[1].xyz);
}
</script>
由上例子 .. id 與 name 都可重複
問題在於使用 getElementXYZ 這類函數
getElement
sByName
getElementById ..... 除非有人寫一個 getElement
sById
或用如上述奇怪的不存在屬性來製造差異性
因為 id 直屬 document 下 , 又無可用函數
所以若是兩個相同 name , 在 dom 中又處於相同地位 , 也會有此窘境
再回非正規個人想像 ..
checkbox2 是陣列 , 那就用 checkbox2[0] ... [1] ... 呼叫
因為有兩個以上同地位的 checkbox2 塞值進去 , 因此成了物件
無論呼叫物件或變數 , 都必須是 javascript 變數命名規範
<div id=show></div>
for (x in document) {
document.getElementById("show").innerHTML+="this["+x+"]="+document[ x ]+"<br>";
}
用這段檢視 , 若是 [object]
再插入底下位置繼續往下找 ... 找幾次就熟了
for (x in document
.物件) {
document.getElementById("show").innerHTML+="this["+x+"]="+document
.物件[ x ]+"<br>";
}
陣列不能習慣老用 i ... 會變斜體
... 用 x 也不行