2016-11-17 79 views
0

我在我的有序列表中有这种类型的列表项目。使用JavaScript在有序列表中插入列表项目

<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) { 
 
\t function1(); 
 
    } 
 
} 
 
function function1() { 
 
\t \t var str = document.getElementById("query_text").value; 
 
\t \t if (str.length == 0) { 
 
\t \t   return; 
 
\t \t } else { 
 
\t \t  \t var ol = document.getElementById("list_container"); 
 
\t \t   var li = document.createElement("li"); 
 
\t \t \t 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>'; 
 
\t \t \t ol.appendChild(li); 
 
\t \t \t } 
 
\t \t }

但上面的脚本不能正常工作。

这是页面代码。

<html> 
 
<head> 
 
<link rel="stylesheet" type="text/css" href="mystyle.css"> 
 

 
<script type="text/javascript"> 
 

 
window.onkeypress = function(event) { 
 
    if (event.keyCode == 13) { 
 
\t function1(); 
 
    } 
 
} 
 
function function1() { 
 
\t \t var str = document.getElementById("query_text").value; 
 
\t \t if (str.length == 0) { 
 
\t \t   return; 
 
\t \t } else { 
 
\t \t  \t var ol = document.getElementById("list_container"); 
 
\t \t   var li = document.createElement("li"); 
 
\t \t \t 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>'; 
 
\t \t \t ol.appendChild(li); 
 
\t \t \t } 
 
\t \t } 
 
</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>

+0

恰好是不工作怎么办?控制台中有任何错误?预期的结果是什么? – empiric

回答

2

我得到

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

这是有道理的,因为id="list_containe"缺少r

0

更正ID list_containelist_container和清除输入上追加新项目

<html> 
 
<head> 
 
<link rel="stylesheet" type="text/css" href="mystyle.css"> 
 

 
<script type="text/javascript"> 
 

 
window.onkeypress = function(event) { 
 
    if (event.keyCode == 13) { 
 
\t function1(); 
 
    } 
 
} 
 
function function1() { 
 
\t \t var str = document.getElementById("query_text").value; 
 
\t \t if (str.length == 0) { 
 
\t \t   return; 
 
\t \t } else { 
 
\t \t  \t var ol = document.getElementById("list_container"); 
 
\t \t   var li = document.createElement("li"); 
 
\t \t \t 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>'; 
 
\t \t \t ol.appendChild(li); 
 
      
 
      document.getElementById("query_text").value = ''; 
 
\t \t \t } 
 
\t \t } 
 
</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>

+0

解释这是什么意思? – marcusshep