将HTML字符串转换为DOM元素?

这个问题在这里已经有了答案:

  • 使用内置的DOM方法或Prototype 19答案,从HTML字符串创建新的DOM元素

  • 您可以使用DOMParser ,如下所示:

    var xmlString = "<div id='foo'><a href='#'>Link</a><span></span></div>"
      , parser = new DOMParser()
      , doc = parser.parseFromString(xmlString, "text/xml");
    doc.firstChild // => <div id="foo">...
    doc.firstChild.firstChild // => <a href="#">...
    

    您通常会创建一个临时父元素,您可以在其中编写innerHTML ,然后提取内容:

    var wrapper= document.createElement('div');
    wrapper.innerHTML= '<div><a href="#"></a><span></span></div>';
    var div= wrapper.firstChild;
    

    如果您获得的外部HTML元素是一个简单的<div> ,这很容易。 如果它可能是别的东西不能去任何地方,你可能会有更多的问题。 例如,如果它是<li> ,则必须使父包装为<ul>

    但是IE不能在像<tr>这样的元素上编写innerHTML ,所以如果你有一个<td>你必须将整个HTML字符串包装在<table><tbody><tr> ... </tr></tbody></table> ,将其写入innerHTML然后从几个级别中解脱出您想要的实际<td>


    为什么不使用insertAdjacentHTML

    例如:

    // <div id="one">one</div> 
    var d1 = document.getElementById('one'); 
    d1.insertAdjacentHTML('afterend', '<div id="two">two</div>');
    
    // At this point, the new structure is:
    // <div id="one">one</div><div id="two">two</div>here
    
    链接地址: http://www.djcxy.com/p/83327.html

    上一篇: Converting HTML string into DOM elements?

    下一篇: Difference between load vs DOMContentLoaded