javascript - js - appendChild 方法破坏整个页面

标签 javascript jquery appendchild

我正在制作一个简单的网络应用程序。在其中的一部分,我有一个动态生成的列表:

enter image description here

这是通过以下方式实现的:

for(var i=0; i<goalsObj.length; i++){
    var node = document.createElement("li");
    node.setAttribute("class", "list");
    node.setAttribute('id','g'+i);
    var checkbox = document.createElement("input");
    checkbox.setAttribute("type","checkbox");
    checkbox.setAttribute("class", "tickbox");
    node.appendChild(checkbox);
    var textnode = document.createTextNode(goalsObj[i]);
    node.appendChild(textnode);              
    document.getElementById("sortable").appendChild(node);  
    }

我有一个 jQuery 函数在单击列表中的任何项目时执行,以在其下方应用日历。

这是通过以下方式实现的:

var cal = document.createElement("p");
    cal.innerHTML=calendar_html;    
    document.getElementById($(this).attr('id')).appendChild(cal);

无论如何,我得到一个非常破旧的输出:

enter image description here

怎么了?我应该怎么办?如何让预先存在的元素(全部动态生成)为新创建的元素让路?

最佳答案

一次生成全部内容,而不是分成几部分。在页面初始化时隐藏不需要的内容。编写一个函数,在单击列表项时显示隐藏的内容。

关于javascript - js - appendChild 方法破坏整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20771724/

相关文章:

javascript - CoffeeScript 返回函数回调表现得很奇怪

javascript - 在测试环境中触发this.props.dispatch

javascript - 获取 <a> 标签的文本

javascript - 是否有 Multimap 数据结构的 javascript 等价物?

jquery - 未捕获的类型错误 : Cannot call method 'match' of undefined

javascript - Jquery UI 对话框无法在初始化之前调用对话框上的方法;试图调用方法 'isOpen'

javascript - 如何使图像标题显示在滚动条上

jquery - 我无法摆脱这个滚动条

javascript - 附加控件的 CSS

javascript - <br> 未附加到 div