还是js的问题啊

var template='<div class="m-modal">\
      <div class="modal_align"></div>\
      <div class="modal_wrap">\
        <div class="bk"></div>\
        <div class="modal_body">\
          <h3>登录网易云课堂</h3>\
          <div class="form1">\
            <input value="账号">\
          </div>\
          <div class="form2">\
            <input value="密码">\
          </div>\
          <button class="submit">登录</button>\
        </div>\
      </div>\
    </div>'

var container;
function html2node(str){
    container = document.createElement('div');
    container.innerHTML = str;
    return container.children[0];
}
var _layout=html2node(template);
var show=function(){
  var asd=document.getElementById("parent");
  asd.appendChild(_layout);
}
container.querySelector('.bk').addEventListener('click', function(event){
    _layout.parentNode.removeChild(_layout);
});

在chrome中的调试面板中,为何container只有一个div元素,图片描述

根据container.innerHTML = str;这句,应该显示template元素啊?

阅读 2.8k
2 个回答
function html2node(str){
    container = document.createElement('div');
    container.innerHTML = str;
    return container.children[0];//这里干嘛返回children[0]? 直接返回container不就好了么
}

asd.appendChild(_layout);
这一句把container里面的元素移动到了asd,所以container只剩下外层的div

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题