這應該很簡單,但出於某種原因,我似乎無法使其工作。我對JS很陌生,我一直在使用W3學校學習(雖然我已經發現MDN(Mozilla Developer Network),這已被證明非常有用。爲什麼我的HTML按鈕刷新頁面?/爲什麼我不能將我的新HTML DOM元素插入到我的頁面
我試圖創建一個新的div,添加幾個孩子,然後插入新的div到HTML表單中。
目前我只是想運行一些測試用例,確保我可以獲得基本的JS工作。知道我做錯了。有誰知道在哪裏我搞亂這裏?
function AddQueryBox(){
window.alert("Add QueryBox");
var NewQBox = document.createElement('div');
document.createElement('div');
NewQBox.appendChild(document.createTextNode("Testing"));
document.getElementById("1").appendChild(NewQBox);
//document.body.appendChild(NewQBox);
}
<div align="right" id="1">
<select onchange="SwitchDatabaseSet()" name="DBSetList" form="DBSetSelector" id="DBSetSelector">
<option value="' . $DBSet->DBSetName . '">OPTION</option>
<option value="' . $DBSet->DBSetName . '">Option</option>
</select>
</div>
<Form>
<div>
<div class="QueryBox" name="QBox">
<select>
<option>Option</option>
</select>
<input type="text"></input>
<button>-</button>
</div>
<div><button onclick="AddQueryBox()">+</button></div>
</div>
</Form>
DERAIL:這個問題花了一個非常奇怪的回合......我的代碼在堆棧溢出上完美工作......但不在XAMPP(開發環境)中......任何人對潛在原因有任何想法?
編輯:顯然代碼工作在我的最後。但是,添加元素後,我的瀏覽器會立即刷新 - 並刪除元素。由於我的刷新速度太快,我沒有看到變化。任何人都知道爲什麼+會使瀏覽器刷新?
'1'是一個HTML元素的無效的標識符。它必須以非數字字符開頭。 –
@GeraldSchneider不符合HTML5的[spec](https://www.w3.org/TR/html5/dom.html#the-id-attribute)。在HTML4中,數字標識是非法的,但現在不再了。 –
對,我一直忘記這是在HTML5中添加的。但這可能是關鍵,如果開發環境使用HTML4,它可以解釋爲什麼它在這裏工作。 –