我正在使用jQuery的.data()
函数,用于处理自定义HTML5数据属性,其中属性值需要能够包含单引号和双引号:
<p class="example" data-example="She said "WTF" on last night's show.">
我知道在 data 属性值中使用像 "
这样的字符编码可以使上述内容正常工作,但我不能总是控制值的输入方式。此外,我需要能够在标记中使用 HTML 标签,例如:
<p class="example" data-example="
She said "<abbr title="What The F***">WTF</abbr>" on last night's show.
">
如果某种形式的 .replace()
是答案,那么需要在值被 .data()
读取之前完成——也许可以将它应用于整个 <body>
中?常规的反斜杠转义(例如 <abbr title="te\'st">WTF</abbr>
)也不起作用。理想情况下,这应该具有适用于以下两种情况的灵活性:data-example="..."
和 data-example='...'
,但如果只能够以一种方式实现,那我至少可以接受。有什么好的建议吗?
更新 - 更多背景:我正在为 responsejs.com 进行这项工作。实际应用可能是仅在宽度大于某个特定值的浏览器中加载侧边栏(并在浏览器中处理,而不是在 PHP 中处理)。例如,在 WordPress 中,侧边栏可以包含小部件、图片等。PHP 标记内的引号不是问题,因为它们在到达浏览器之前会被解析为 HTML。例如:<aside id="primary" class="sidebar"
data-oweb='
<?php dynamic_sidebar( 'primary' ); ?>
'
>
optional default markup for mobile and no-js browsers here
</aside>