【问题标题】:Why does the style attribute not work on an element created with DOMParser?为什么 style 属性不适用于使用 DOMParser 创建的元素?
【发布时间】:2016-09-11 16:36:52
【问题描述】:

我正在尝试使用 DOMParser 解析 (X)HTML,然后在页面中显示它。它似乎在页面中嵌入了正确的元素,标记看起来与它应该的完全一样,但尽管如此,它们的行为却很奇怪(例如,设置 style='display: none' 没有效果。)

这是怎么回事?

var parser = new DOMParser();
var markup = '<p id="testp">Can you see me?</p>';
var doc = parser.parseFromString(markup,"text/xml");
document.body.appendChild(doc.documentElement);
document.getElementById('testp').setAttribute('style', 'display: none');

https://jsfiddle.net/57064q1u/

【问题讨论】:

    标签: javascript html xml dom


    【解决方案1】:

    你必须使用 text/html 来使用 style 属性。否则你只会创建一个xml节点。

    var doc = parser.parseFromString(markup,"text/html");
    

    【讨论】:

    • 如果我想在 IS XML 的 XHTML 页面中执行此操作怎么办?
    • @Chris_F - 然后将xmlns="http://www.w3.org/1999/xhtml" 属性添加到您的&lt;p&gt; 元素。 :jsfiddle.net/57064q1u/4
    • @Alohci 有没有办法告诉 DOMParser 默认命名空间应该是什么,而不是为每个元素创建一个属性?
    • @Chris_F - 我对此表示怀疑。但是您不需要在每个元素上都使用它。放在根元素上就可以了,前提是 xml 片段中的所有元素都放在同一个命名空间中。
    猜你喜欢
    • 2015-05-05
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-03
    • 1970-01-01
    • 2019-11-02
    • 2021-12-24
    相关资源
    最近更新 更多