使用JavaScript在有序列表中插入列表项

Insert List Item in an Ordered List using JavaScript

本文关键字:列表 插入 插入列 JavaScript 使用      更新时间:2023-09-26

我的有序列表中有这种类型的列表项。

<li class="other">
        <div class="avatar"><img src="http://i.imgur.com/DY6gND0.png" draggable="false"/></div>
      <div class="msg">
          <p>Copón</p>
        <p><emoji class="funny"/></p>
        <time>18:08</time>
      </div>
    </li>

我想用javascript插入一个新的列表项。这就是我要做的。

window.onkeypress = function(event) {
   if (event.keyCode == 13) {
	function1();
   }
}
function function1() {
		var str = document.getElementById("query_text").value;
		if (str.length == 0) { 
		        return;
		} else {
		    	var ol = document.getElementById("list_container");
		        var li = document.createElement("li");
			li.innerHTML = '<div class="avatar"><img src="http://i.imgur.com/DY6gND0.png" draggable="false"/></div><div class="msg"><p>Copón</p><p><emoji class="funny"/></p><time>18:08</time></div>';
			ol.appendChild(li);   
			}
		}

但是上面的脚本不起作用

这是整个页面的代码。

<html>
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
<script type="text/javascript">
window.onkeypress = function(event) {
   if (event.keyCode == 13) {
	function1();
   }
}
function function1() {
		var str = document.getElementById("query_text").value;
		if (str.length == 0) { 
		        return;
		} else {
		    	var ol = document.getElementById("list_container");
		        var li = document.createElement("li");
			li.innerHTML = '<div class="avatar"><img src="http://i.imgur.com/DY6gND0.png" draggable="false"/></div><div class="msg"><p>Copón</p><p><emoji class="funny"/></p><time>18:08</time></div>';
			ol.appendChild(li);   
			}
		}
</script>
</head>
<body>
<div class="menu">
            <div class="back"><i class="fa fa-chevron-left"></i> <img src="http://i.imgur.com/DY6gND0.png" draggable="false"/></div>
            <div class="name">Alex</div>
            <div class="last">18:09</div>
</div>
    <ol id="list_containe" class="chat">
    <li class="other">
        <div class="avatar"><img src="http://i.imgur.com/DY6gND0.png" draggable="false"/></div>
      <div class="msg">
          <p>Copón</p>
        <p><emoji class="funny"/></p>
        <time>18:08</time>
      </div>
    </li>
    <li class="self">
        <div class="avatar"><img src="http://i.imgur.com/HYcn9xO.png" draggable="false"/></div>
      <div class="msg">
        <p>Hey there's a new update about this chat UI with more responsive elements! Check it now:</p>
        <p><a href="http://codepen.io/Varo/pen/YPmwpQ" target="parent">Chat UI 2.0</a></p>
        <time>18:09</time>
      </div>
    </li>
    </ol>
    <input class="textarea" id="query_text" type="text" placeholder="Type here!"/><div class="emojis"></div>
</body>
</html>

我得到

js:30 Uncaught TypeError: Cannot read property 'appendChild' of null(…)

这是有意义的,因为id="list_containe"缺少r

将id list_containe更正为list_container,并清除追加新项的输入

<html>
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
<script type="text/javascript">
window.onkeypress = function(event) {
   if (event.keyCode == 13) {
	function1();
   }
}
function function1() {
		var str = document.getElementById("query_text").value;
		if (str.length == 0) { 
		        return;
		} else {
		    	var ol = document.getElementById("list_container");
		        var li = document.createElement("li");
			li.innerHTML = '<div class="avatar"><img src="http://i.imgur.com/DY6gND0.png" draggable="false"/></div><div class="msg"><p>Copón</p><p><emoji class="funny"/></p><time>18:08</time></div>';
			ol.appendChild(li);   
          
            document.getElementById("query_text").value = '';
			}
		}
</script>
</head>
<body>
<div class="menu">
            <div class="back"><i class="fa fa-chevron-left"></i> <img src="http://i.imgur.com/DY6gND0.png" draggable="false"/></div>
            <div class="name">Alex</div>
            <div class="last">18:09</div>
</div>
    <ol id="list_container" class="chat">
    <li class="other">
        <div class="avatar"><img src="http://i.imgur.com/DY6gND0.png" draggable="false"/></div>
      <div class="msg">
          <p>Copón</p>
        <p><emoji class="funny"/></p>
        <time>18:08</time>
      </div>
    </li>
    <li class="self">
        <div class="avatar"><img src="http://i.imgur.com/HYcn9xO.png" draggable="false"/></div>
      <div class="msg">
        <p>Hey there's a new update about this chat UI with more responsive elements! Check it now:</p>
        <p><a href="http://codepen.io/Varo/pen/YPmwpQ" target="parent">Chat UI 2.0</a></p>
        <time>18:09</time>
      </div>
    </li>
    </ol>
    <input class="textarea" id="query_text" type="text" placeholder="Type here!"/><div class="emojis"></div>
</body>
</html>