怎么将dom转换为字符串

比如说我手动创建一个节点,我想将它作为另一个div的内容并显示在页面中,所以就把它转换为字符串再inner,但是就出错了:

 var a = document.getElementById("a");
 var span = document.createElement('li');
 var b = span.innerHTML = "hello world";
 a.innerHTML = b;  //  b is not defined

为什么有这个错误呢,我把b用toString()转换,也是一样的错误,有点懵,求大神指教

阅读 10.1k
3 个回答

看下你的代码、、、

 var a = document.getElementById("a");
 var span = document.createElement('li');
 var b = span.innerHTML = "hello world";
 a.innerHTML = b;  //  b is not defined

插入节点应该用dom操作,哪有你这么写的?你回去把dom操作那个章节好好复习一下。
1.不要给a插入li标签标签,不符合语义化,换成ul;也不要给li标签命名span混乱的一笔。
建议好好遵守命名规范。
修改为:
var ulDom= document.getElementById("ul"); var liDom =document.createElement('li');
2.给liDom赋值
liDom.innerHTML='hello,world'
3.把li添加到ul里面
ulDom.appendChild(liDom)


以上代码亲测有效,你写那啥东西呀?看都看不懂,逻辑极其混乱。

  • 如果你需要的是字符串转成dom,你应该:
    ulDom.innerHTML='<li>hello,world</li>'

根本就不用动态创建DOM,你把两个搞混了!
其他的标签添加dom操作和这个类似,如果解决了你的问题请点击采纳答案

b是个字符串 ,a.innerHTML = b,那你还创建span节点是为何?

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