之前以下html
標記雙刀片之後是允許的,但犯規
<div id="parent" class="parent">
<div id="child" class="child">
<input type="text" class="text"/>
<input id="submit" value="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.nextSibling);
myKeys=[];
myKeys.push(getAllKeyValuePair(submit));
span.innerHTML=myKeys;
}
function getAllKeyValuePair(obj){
var str="";
for(var key in obj){
try{
str=str+"{"+key+", "+obj[key]+"}";
}
catch(e){
console.log(key);
}
}
return str;
}
JSFIDDLE例子。 它工作正常,可以點擊2,3,...等等提交按鈕時,點擊提交按鈕重複...等。但如果我們試圖取代child.insertBefore(span,submit.nextSibling);
到child.insertBefore(span,submit);
(即插入span
之前submit
按鈕而不是之後)我們只能一次點擊提交按鈕。隨之而來的點擊會導致異常。 JSFIDDLE
問題顯然就是爲什麼在之前submit
第二和隨之而來的點擊會導致異常插入的情況下,但是在插入的submit
後的情況下,它的做工精細。我認爲,重複提交button
的原因並非如此。