jquery - 向 HTML 元素添加元数据的最佳方式

标签 jquery html css expando

我正在尝试组合一种标记 HTML 中的各种组件的方法,这些组件由 jQuery 脚本解析并在页面加载时创建。

例如,目前我可以将以下内容放入我的页面..

<a href="link.html" class="Theme-Button Theme-Button-Style-win2007 Theme-Button-iconLeft Theme-Button-AlignmentCenter Theme-Button-fullWidth">This is a button</a>

当 jQuery 脚本找到它时,它会注入(inject)必要的 html 来创建一个带有图标的按钮以及所有必要的事件等。

但是,这很麻烦,需要很多长类名。我宁愿做这样的事情......

<a href="#" class="Theme-Button" data="{style: 'win2007', icon: 'left', align:'center', fullWidth: true}"></a>

在我看来,它并没有那么短,但更简洁,并且需要更少的解析。问题是,我对“expandos”做了一点研究,我相当确定有些浏览器不会喜欢它,也不会验证它。

有人有更好的建议吗?

最佳答案

继续为此使用一个属性,但在其上使用 data- 前缀。带有前缀 data- 的属性是 explicitly allowed在 HTML5 的所有元素上。示例:

<a href="#" class="Theme-Button" data-theme="{style: 'win2007', icon: 'left', align:'center', fullWidth: true}"></a>

它现在适用于所有浏览器,并且因为它现在是特定行为,所以它是面向 future 的。

关于jquery - 向 HTML 元素添加元数据的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1923278/

相关文章:

javascript - 打开具有不同内容的多个模态 - CSS 和 JS

javascript - 表单级别的 Angularjs 指令,访问所有字段并检查验证

jquery - 由于切换更改而更新 jQuery 时代码中断

html - CSS 目标点击多次

.net - ASP.NET Gridview - 如何垂直更改颜色属性?

jquery - 为什么在我的 AngularJS 指令中需要 <div> 包装 Jquery UI 自动完成小部件?

jquery - 图像预加载 jquery

javascript - 脚本返回未定义的属性

javascript - 模态捕获其他模态的点击

html - 如何使用内联 css 将图像移动到 div 的中心?