【发布时间】:2011-03-03 16:18:22
【问题描述】:
我有一个网页,其中有一个我想重新填充的 div。 目前,该 div 的内容是使用 Javascript 通过以下方式生成的:
function foo(array){
for(i=1;i<=maxIndex;i+=1){
document.write ("<label><input type='checkbox'/>" + array[i] + "\n </label><br />")
}
}
我通过以下方式填充 div:
<div class="bla">
blablabla
</div>
<div class="myDiv" id="myDiv">
<form name="myForm">
<script type="text/javascript">
foo(myArray);
</script>
</form>
</div>
<div class="blah">
blahblahblah
<form>
<select onchange="updateDiv(myArray)">
<option value="1"> Test1 </option>
<option value="2"> Test2 </option>
<option value="3"> Test3 </option>
</select>
</form>
</div>
我想重新填充 div 的原因是因为我想 用户可以选择div内容的排列方式 (即当用户从组合框中选择某个项目时,“myArray” 重新排序,然后重新填充 myDiv,使内容现在以不同的顺序显示)。
function updateDiv(array){
array.sort();
document.getElementById('myDiv').innerHTML = '<form name="myForm"><script type="text/javascript"> foo(myArray); </script></form>';
}
我遇到的问题是我无法针对新的 用户选择组合框时 myDiv 中的内容。
我尝试过使用 innerhtml,但是正确输出的新内容显示在一个全新的页面中,而不是显示在 myDiv 中,因为 JavaScript。
编辑:似乎现在的问题是 innerhtml 更新了正确 div 中的代码(至少当我用 firebug 检查它时)但没有显示文本(JavaScript 尚未运行......?)。
我在网上看了一圈,似乎没有找到合适的解决方案。
如果有人能指出我正确的方向或让我 知道我是否完全错误地接近这个。
谢谢
【问题讨论】:
标签: javascript html innerhtml