使用for循环创建html元素并附加子元素(或映射?)

时间:2017-09-01 02:54:39

标签: javascript html

我想创建一个函数,它接受一个字符串作为输入,创建几个元素,然后将每个元素追加到先前创建的元素,以便文本显示为一个列表项,在一个div内,在一个范围内。目的是最终制作一个基本的待办事项列表,但是现在我仍然坚持基本的步骤

我认为for循环可能对元素的创建有用,但我无法弄清楚如何追加我之前添加的内容。以下是我的开始:

const elementsArray = [
                            'ol',
                            'li', 
                            'div',
                            'span',

                            ];

const makeToDoItem = (toDoItem) => {

    for (i = 0; i < elementsArray.length; i++) {

    const createElement = 
    document.createElement(elementsArray[i]);
    document.body.appendChild(createElement);
                     };
               };

makeToDoItem("post on stackoverflow");

我理解

document.body.appendChild(createElement);

正在按照我的要求去做:在正文中创建四个元素。我怎样才能按照我想要的方式追加他们?

.map功能更好吗?我无法理解如何在这里申请.map。

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

&#13;
&#13;
const elementsArray = [
                            'ol',
                            'li'
                            ];

const makeToDoItem = (toDoItem) => {

    for (i = 0; i < elementsArray.length; i++) {

      const createElement = 
      document.createElement(elementsArray[i]);
      if (elementsArray[i] === 'li') {
        createElement.textContent = toDoItem;
      }
      document.body.appendChild(createElement);
    };
};

makeToDoItem("post on stackoverflow");
makeToDoItem("another post");
&#13;
&#13;
&#13;

您可以执行上述操作,但您可能想要创建&lt; ol&gt;在HMTL中,然后附加&lt; li&gt;里面的元素。