我正在尝试使用javascript和jquery创建div。
我的代码到目前为止:
<script>
var numOfWindows = 3;
var arrayDiv = new Array();
for (var i = 0; i < numOfWindows; i++)
{
var newDiv = $('#server div:first').clone();
$('#server').append(newDiv);
}
</script>
<input type="text" name="numserver"><br>
<button onclick="new_server()">GO</button>
<br>
<div id="server">
<div id="1">
<table border="3"><tbody>
<tr><th colspan="4" style="background-color:#b0c4de;">Server 1</th></tr>
<br>
<tr><td>Technology<select name="tech[]"><option value="w">Web</option><option value="d">DB</option><option value="m">Mail</option><option value="o">Other</option></select><br>
<br></td>
<td>CPU? <input type="text" name="cpu[]"><br></td>
<td>Memory? <input type="text" name="memory[]"><br></td>
<td>Disk Space? <input type="text" name="space[]"><br></td></tr>
<br>
</tbody></table>
</div>
</div>
我的最终结果是用户能够输入服务器数量并单击GO然后自动创建div。
我知道如何获取numOfWindows值,但我认为它现在应该使用静态值。
答案 0 :(得分:1)
代码是正确的,但是如果说adeneo,你没有DOM就绪处理程序。 请改用以下内容:
function LoadMyJs(){
var numOfWindows = 3;
var arrayDiv = new Array();
for (var i = 0; i < numOfWindows; i++)
{
var newDiv = $('#server div:first').clone();
$('#server').append(newDiv);
}
}
&#13;
<body onLoad="LoadMyJs()">
&#13;
答案 1 :(得分:0)
您正在尝试运行使用未定义HTML的脚本。要解决此问题,您可以在定义HTML之后移动脚本,也可以使用jquery shortcut document.ready函数,例如$(function(){<your code here>});
。
在第一种情况下,事件处理程序必须立即成为全局变量。否则,在快捷范围之前声明此变量。
接下来,您定义事件处理函数获取input
值($('input[name="numserver"]').val()
)。现在,您可以生成由值(Array.apply(null, [+value]).map(function(){<generator here>})
)定义的div。要生成副本,可以使用克隆方法,并且应该像生成的那样将生成的div插入到div容器中。
看起来你正试图通过&#34; GO&#34;来生成div。按钮单击。在你的情况下,事件处理函数应命名为&#34; new_server&#34;。并且你不会在&#34; onclick&#34;中调用此功能。属性你只是声明它。