string和createElement创造节点的区别
最近遇见这个问题比较多,拿出来分享一下.
场景:createElement创造一个li节点,加上了事件,然后因为某些原因,没事直接插入,而获取其outerHTML,然后插入到网页中,此时添加的事件就会失效。
1 window.onload = function () { 2 var ele = document.createElement('p'); 3 ele.className = 'para'; 4 ele.innerHTML = '点击我弹出'; 5 6 ele.onclick = function () { 7 alert('yeah you click'); 8 }; 9 10 console.log (Object.prototype.toString.call(ele)); // [object HTMLParagraphElement] 11 console.log( typeof ele ); // object 12 console.log( typeof ele.outerHTML ); // string 13 14 document.getElementById('comment').innerHTML =ele.outerHTML ; 15 document.getElementById('comment').appendChild(ele); 16 }
使用jsfiddle来进行演示