我编写的代码可以在桌面上打印名称。如果我点击按钮,它应该用已排序的名称替换 例如,我有:
按下按钮后应替换为:
我的代码:
<div>
<ul>
<script>
var Tab = new Array('Johny', 'Amber', 'Michael')
for (x=0; x<Tab.length; x++) {
w= "<li>" + Tab[x] + "</li>"
document.write(w);
}
function myFunc(){
var str = document.getElementById(w).value;
var res = str.replace(w, Tab.sort());
document.getElementById(w).innerHTML = res;
}
</script>
</ul>
</div>
<button type="button" id="sort" onclick="myFunc()">Sort</button>
myFunc()有问题。 如何更换/覆盖它们?
答案 0 :(得分:1)
如果您想多次编写列表,请为其创建一个函数。您将节省时间和代码。我称之为printTab
。要使用JS访问 ul 标记,我已为其添加了一个ID:list
。现在myFunc
:让我们简单地对数组进行排序并再次打印。
<div>
<ul id="list">
<script>
var Tab = new Array('Johny', 'Amber', 'Michael')
function printTab() {
var w = '';
for (x=0; x<Tab.length; x++) {
w += "<li>" + Tab[x] + "</li>"
}
document.getElementById("list").innerHTML = w;
}
// we must be sure that DOM is loaded if we want to manipulate on it
document.addEventListener("DOMContentLoaded", function(event) {
printTab();
});
function myFunc(){
Tab.sort();
printTab();
}
</script>
</ul>
</div>
<button type="button" id="sort" onclick="myFunc()">Sort</button>
我的建议是将脚本放在比一些随机标签更好的位置,因为它会使HTML文档混乱,页面加载顺序非常随机。 JS脚本的最佳位置就在</body>
之前。
答案 1 :(得分:0)
您必须引用正在修改其内部HTML的div的id。这是fiddle
<html>
<div id="stuff">
</div>
<button type="button" id="sort" onclick="myFunc()">Sort</button>
<script>
var Tab = new Array('Johny', 'Amber', 'Michael');
function formList(Tab) {
var w = "<ul>";
for (x = 0; x < Tab.length; x++)
w += "<li>" + Tab[x] + "</li>";
w += "</ul>";
return w;
}
document.getElementById("stuff").innerHTML = formList(Tab);
function myFunc() {
document.getElementById("stuff").innerHTML = formList(Tab.sort());
}
</script>
</html>