我繼續嘗試使用名稱值對JS
對象。 JSFIDDLE獲取值串表示的不同結果
<div id="parent" class="parent">
<div id="child" class="child">
<input type="text" class="text"/>
<input id="submit" type="submit" onclick="doThis()"/>
</div>
<div>
和JS
代碼
function doThis(){
var span= document.createElement("span");
var parent=document.getElementById("parent");
var child=document.getElementById("child");
var submit=document.getElementById("submit");
child.insertBefore(span,submit);
myKeys=[];
for(var key in submit){
if(key=="parentNode"){
myKeys.push("{"+key);
myKeys.push(" "+submit.key+"}");
}
}
myKeys.push("{"+"parentNode");
myKeys.push(" "+submit.parentNode+"}");
span.innerHTML=myKeys;
}
剛剛創建span
包含以下內容:
{parentNode, undefined},{parentNode, [object HTMLDivElement]}
,但我預計這一span
將包含{parentNode, [object HTMLDivElement]},{parentNode, [object HTMLDivElement]}
。請解釋我爲什麼發生?
更新:我將鏈接更改爲實際。
究竟什麼是你的問題?你想做什麼?跨度是否插入錯誤的地方? – Samy
@Samy我想知道爲什麼代碼片段爲(var鍵在提交){if(key ==「parentNode」){myKeys.push(「{」+ key); myKeys.push(「」+ submit.key +「}」);}}'添加到'myKeys' {{parentNode,undefined}''而不是'{parentNode,[object HTMLDivElement]}' .push( 「{」 + 「parentNode」); myKeys.push(「」+ submit.parentNode +「}」); span.innerHTML = myKeys;' –