【问题标题】:derive unordered lists from an array从数组派生无序列表
【发布时间】:2019-01-31 18:15:44
【问题描述】:

我有一个句子数组,我希望将它们转换为无序的 HTML 列表,每个列表都包含一个句子的单词,例如 [I play piano the can'] t

<ul>
<li> id = number</li>
<li>I</li>
<li>play</li>
<li>piano</li>
<li>the</li>
<li>can</li>
</ul> 

我正在使用以下内容(我希望!!)遍历数组以获得我想要的格式

    function makeQuest() {
      var quest=['I play piano the can', 'tired I am', 'are seven There week in a days'];
     
      for (var i=0; i< quest.length; i++){
            document.write('<ul class ="div3">')
      	 	document.write('<li id = "number">' + (i + 1) + '.' + ' '+ '</li>')
      	for (var j=0; j < quest[i].length; j++){
      		document.write('<li>')
      		document.write(quest[i][j]) 
      		document.write('</li>' + '</ul>')
      			}
      		}		
     };
     makeQuest()

相反,我开始使用这个脚本:

1.I
play piano the can
2. t
ired I am
3. a
re seven There week in a days.

我做错了什么?

【问题讨论】:

  • document.write() 是这项工作的错误工具。构建整个列表项字符串。然后在整个字符串完成后,使用innerHTML。或者,您可以使用 .createElement() 创建新节点并将它们单独附加到 DOM。
  • 如果quest[i] 是一个字符串,为什么不在它上面使用split 而不是逐个字符地处理它?
  • 我应用了 quest[i].split() ,它给了我想要的输出,但是我正在应用 sortable 并希望每个单词都是可排序的。我认为我所做的只是将整个句子放入一个
  • 标记中,而不是将每个单词放入一个单独的
  • 标记中。恐怕我不是程序员,只是想做一个语言导师供个人使用:一旦我遍历数组并“捕获”了一个句子,我如何使用 split 将每个单词插入到单独的标签中?我确信这是一个非常基本的问题,所以请原谅!

标签: javascript arrays list


【解决方案1】:

split 空格上的字符串(您的方法是使用字符而不是单词):

function makeQuest() {
  var quest=['I play piano the can', 'tired I am', 'are seven There week in a days'];

  for (var i=0; i< quest.length; i++){
    document.write('<ul class ="div3">')
    document.write('<li>' + (i + 1) + '. </li>')
    for (var j=0; j < quest[i].split(' ').length; j++){
      document.write('<li>')
      document.write(quest[i].split(' ')[j]) 
      document.write('</li>')
    }
    document.write('</ul>')
  }		
};
makeQuest()

并且(这超出了您的问题范围)不要多次使用id="number"

更多关于split()

【讨论】:

  • 完美。谢谢你,如果没有这个,我永远不会到达那里
  • 出于某种原因运行此命令会依次打印两次句子,第 1、2、3 句,然后是第 1、2 和 3 句。我不明白为什么会发生这种情况。它的完美,但除此之外。我已经对句子应用了可排序,并且排序也很完美。非常感谢您的帮助。
  • 我是个傻孩子!!两次调用该函数。正如你所写的那样完美。
猜你喜欢
相关资源
最近更新 更多
热门标签