JavaScript:将数组排序为有序列表

时间:2012-09-26 17:26:39

标签: javascript html

在我的作业上,我必须创建一个数组,然后我就这样做了,但不是我需要将它排成一个有序的列表。我的教授没有提供任何示例代码,我在网上找不到任何可以帮助我列入有序列表的内容。救命啊!

具体方向: 在外部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);

但只能用逗号排序:(

3 个答案:

答案 0 :(得分:3)

您已对数组进行了排序。只需将每本书打印到<li>并将HTML附加到列表中即可。

document.write(boooks)时看到逗号的原因是传递给它的对象document.write调用toString,数组toString实现为{ {1}},默认分隔符为逗号。

array.join()

示例 http://jsfiddle.net/nkQLM/1/

答案 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>";