-5

在我的作业中,我必须创建一个数组,我做到了,但我不需要将它排序到有序列表中。我的教授没有给出任何示例代码,我在网上找不到任何可以帮助我放入有序列表的东西。帮助!

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

但这只能用逗号排序:(

4

3 回答 3

3

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

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

<ol id="books">
</ol>​

// This looks much nicer a separate call for each array member
var books = [
   "Fifty Shades of Grey",
   "Twilight",
   "The Notebook"
];

var html = "";
for (var i =0; i < books.length; i++) {
    html += "<li>" + books[i]+ "</li>";
}
document.getElementById("books").innerHTML = html;​

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

于 2012-09-26T17:32:41.263 回答
2

只需将列表的 HTML 代码放在字符串周围:

document.write('<ol><li>'+bookList.join('</li><li>')+'</li></ol>');

有点超出了练习的范围,但是像这样将内容放入页面中假定字符串中没有在 HTML 代码中具有特殊含义的字符,<例如>&。理想情况下,您将创建元素对象,将文本放入其中,然后将它们添加到文档树中。例如使用 jQuery 库:

在页面中放置一个元素:

<ol id="list"></ol>

在就绪事件(或列表下方的脚本标记)中,将列表元素放入列表中:

$.each(booklist, function(){
  $('#list').append($('<li/>').text(this));
});
于 2012-09-26T17:43:09.157 回答
1

不,它不是用逗号对数组进行排序。演示

当您调用 document.write(bookList); bookList 时,通过在项目之间自动插入“,”将其转换为字符串

join您可以使用(在我的示例中使用空格) 替换逗号为

document.write(bookList.join("  "))

如果要生成订单列表,请使用以下代码

变量html ="<ol><li>"+ bookList.join('</li><li>') + "</li></ol>";

于 2012-09-26T17:37:53.400 回答