在我的作业上,我必须创建一个数组,然后我就这样做了,但不是我需要将它排成一个有序的列表。我的教授没有提供任何示例代码,我在网上找不到任何可以帮助我列入有序列表的内容。救命啊!
具体方向: 在外部JavaScript文件中,创建一个包含您喜欢的书籍标题的数组(如果您愿意,可以组成标题。)页面加载时,使用JavaScript在有序列表中的网页上显示标题。由于图书清单是可变的,因此必须动态建立清单。使用文档对象的write方法或修改元素的innerHTML属性。
我有
var books = new Array();
books[0] = "Fifty Shades of Grey";
books[1] = "Twilight";
books[2] = "The Notebook";
books[3] = "Dear John";
books[4] = "Demon in my View";
var bookList = books.sort();
document.write(bookList);
但只能用逗号排序:(
答案 0 :(得分:3)
您已对数组进行了排序。只需将每本书打印到<li>
并将HTML附加到列表中即可。
您document.write(boooks)
时看到逗号的原因是传递给它的对象document.write
调用toString
,数组toString
实现为{ {1}},默认分隔符为逗号。
array.join()
答案 1 :(得分:2)
只需将字符串的HTML代码放在字符串周围:
document.write('<ol><li>'+bookList.join('</li><li>')+'</li></ol>');
有点超出了练习,但是像这样在页面中放置内容假定字符串中没有HTML代码中具有特殊含义的字符,例如<
,>
或{ {1}}。理想情况下,您将创建元素对象,将文本放入其中,然后将它们添加到文档树中。例如,使用jQuery库:
在页面中放置一个元素:
&
在就绪事件(或列表下方的脚本标记)中,将列表元素放在列表中:
<ol id="list"></ol>
答案 2 :(得分:1)
不,不是用逗号对数组进行排序。 DEMO
当您通过在项目之间自动插入','来调用document.write(bookList);
bookList转换为字符串时
您可以使用join
替换逗号(在我的示例中为空格)
如
document.write(bookList.join(" "))
如果您想使用以下代码生成订单列表
var html ="<ol><li>"+ bookList.join('</li><li>') + "</li></ol>";