【发布时间】:2016-06-14 01:04:49
【问题描述】:
这应该很简单,但由于某种原因,我似乎无法让它工作。我对 JS 很陌生,而且我大部分时间都在使用 W3 学校来学习(尽管后来我发现了 MDN (Mozilla Developer Network),这已被证明非常有用。
我正在尝试创建一个新 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。在 HTML4 中,数字 id 是非法的,但现在不是了。
-
对,我一直忘记这是在 HTML5 中添加的。但这可能是关键,如果开发环境使用 HTML4,它会解释为什么它在这里工作。
-
@GeraldSchneider 谢谢你,但它似乎与“1”的 ID 一起工作。不过我最后还是改了。我意识到了一些事情。我不确定我改变了什么,但它开始对我有用。不过我有这个问题,每次我点击按钮时,div 都在变化,我的浏览器刷新速度太快。我认为它实际上正在工作,但由于浏览器刷新速度很快,我无法判断......这很令人困惑,因为我不知道为什么我的浏览器在单击 + 按钮时会刷新。
标签: javascript html xampp