【问题标题】:Building a JS Function to dynamically create HTML elements and nest them inside each other构建一个 JS 函数来动态创建 HTML 元素并将它们相互嵌套
【发布时间】:2015-12-12 17:54:42
【问题描述】:

我创建了以下函数 动态创建 HTML 元素并将它们附加到我想要的任何位置。控制台在运行时不会记录任何错误,但第二个元素 (<p>) 不写入文档。

我认为错误与“createdDiv”变量有关,但我无法找出问题所在。

任何帮助将不胜感激!

//Array of elements to be created

var createdElements = [
    [ 'div', 'Class0', 'ID0'],
    ['p', 'Class1', 'ID1']      
];


//function to create and append elements to document

function createHTML( typeOfCreatedElement ,createdElementClass, createdElementId, locationForCreatedElement ){
    var createdElement = document.createElement( typeOfCreatedElement );
    createdElement.className = createdElementClass;
    createdElement.id = createdElementId;

    locationForCreatedElement['appendChild']( createdElement );

    return createdElement;
}


//run function 2x; 
//createdDiv successfully writes to the document, but createdParagraph disappears into a black hole...

var createdDiv = createHTML( createdElements[0][0], createdElements[0][1], createdElements[0][2], document.body );
var createdParagraph = createHTML( createdElements[1][0], createdElements[1][1], createdElements[1][2], createdDiv );

【问题讨论】:

标签: javascript html appendchild


【解决方案1】:

你可以试试这个更新 createHTML method()

function createHTML( typeOfCreatedElement ,createdElementClass, createdElementId, locationForCreatedElement ){
    var createdElement = document.createElement( typeOfCreatedElement );
    createdElement.className = createdElementClass;
    createdElement.id = createdElementId;
    createdElement.innerHTML = "this is a sample text for element type " + typeOfCreatedElement;

    locationForCreatedElement.appendChild( createdElement ); //line that I have changed.

    return createdElement;
} 

appendChild 是一个方法,而不是一个属性。

【讨论】:

  • OP 似乎在他们的代码中使用appendChild 像一个方法。使用点表示法代替括号表示法不会改变任何内容。
  • 我在对 OP 帖子的评论中添加了一个小提琴链接。他们的代码似乎有效。
  • @Teemu 好的,我已根据您在评论中的建议添加了 innerHTML 属性。感谢您检测到这一点。
  • 嘿!我的功劳在哪里,我什么都没有; )。开个玩笑,反应迟钝的问卷对 SO 来说是一种瘟疫。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-10
  • 2019-04-03
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
  • 2011-12-19
相关资源
最近更新 更多