我想知道将项目(在本例中为字符串)插入正确的字母顺序,仅使用 JavaScript(不是 jQuery)的最有效方法是什么?我认为在插入项目后直接对列表进行排序就足够了,但不起作用。我通过输入到文本字段中的值获取要插入的值。
在插入新项目之前,列表如下所示:
- 信天翁
- 扇尾
- 基亚
- 猕猴桃
- 高边
- 推
如果我选择将“Bellbird”添加到此列表中,我希望该列表现在看起来像:
- 信天翁
- 铃鸟
- 扇尾
- 基亚
- 猕猴桃
- 高边
- 推
这是我用来尝试实现预期结果的代码:
HTML:
<ul id="birds">
<li>Albatross</li>
<li>Fantail</li>
<li>Kea</li>
<li>Kiwi</li>
<li>Takahe</li>
<li>Tui</li>
</ul>
<p><label for="addNewBirdField">Add new bird: </label>
<input type="text" id="addNewBirdField" /></p>
<p><button id ="addItem">Add new bird</button></p>
JavaScript:
function addNewBird()
{
var birdList = document.getElementById("birds"); //get birds unordered list
var newBirdItem = document.createElement("li"); // create new li element
var bird = document.getElementById("addNewBirdField").value // get data from form field
var birdValue = document.createTextNode(bird); // create new textNode with value from previous step
newBirdItem.appendChild(birdValue); // append textNode from previous step to li element (newBirdItem)
birdList.appendChild(newBirdItem); // append li element to bird list
birdList.sort();
}
var addItem = document.getElementById("addItem");
addItem.onclick = addNewBird;
我在排序数组中查看了这个链接(我假设我的编程知识是每个列表元素都在一个数组中)。我了解按字典顺序排序是什么-本周早些时候我学到了这一点。
如果有人可以帮助我解决这个问题,将不胜感激。