【问题标题】:jQuery: read and access inline CDATAjQuery:读取和访问内联 CDATA
【发布时间】:2012-03-28 10:07:10
【问题描述】:

我正在寻找一个更好的解决方案,使用 Javascript 读取 CDATA(或像 jQuery 这样的 DOM-Utility)。用javascript直接访问CDATA似乎是不可能的。

这是我的 sn-p,但在我看来它很丑:

<div id="becks" data-my-favorite="<![CDATA[ I like <br>German beer and busty woman]]>"></div>

var text = $('#becks').data('myFavorite').split('<![CDATA[')[1], 
    text = text.split(']]>')[0];

    log(text) // "I like 
                  German beer and busty woman"

【问题讨论】:

  • (a) .data('my-favourite') 更接近你想要的; (b) 您不能在属性值中包含 CDATA,可以吗? (它们通常被声明为 CDATA 或 PCDATA 或选项集,至少在基于 SGML 的 HTML 中。不知道在 HTML5 中会发生什么。)
  • &lt;div id="becks" data-my-favorite="&lt;![CDATA[...]]&gt;"&gt;&lt;/div&gt; 甚至不是有效的 HTML。我建议你解决这个问题,而不是试图通过弯曲 jQuery 来解决它。
  • 当然,&lt;div id="becks" data-my-favorite="&lt;![CDATA[...]]&gt;"&gt;&lt;/div&gt; 是有效的 HTML5 !

标签: javascript jquery cdata


【解决方案1】:

如何重新定义问题以避免在数据属性中包含 HTML 实体?

<div id="becks" data-my-favorite="I like\nGerman beer and busty woman"></div>

var text = $('#becks').attr('data-my-favorite').replace('\n','<br />');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 2014-10-11
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 2013-06-19
    • 2021-04-17
    相关资源
    最近更新 更多