JQuery 奇怪的属性

JQuery strange attribute

我有一段代码使用了一个我无法识别的奇怪选择器:

$("div[tag=" + someVariable + "]").css("display", "block");

据我所知,选择器查找具有名为 tag 的属性的 div 元素,其值等于 someVariable

什么是 tag 属性?很多谷歌搜索都没有给我任何指示。

编辑:下一行是:

$("div[tag=" + someVariable+ "]").addClass("someClass");

难道这段代码创建了一个带有自定义属性的div,然后将其添加到页面中?

您可以为您的属性使用任何名称,您甚至可以将它们命名为 somereallystrangename - 尽管不建议这样做并且不会通过任何验证。共识是使用 data-{tag} 作为您自己定义的属性。但是没有什么可以阻止您(或编写您的脚本的人)使用 tag 作为属性名称。 Tag 在 HTML 中不是正式使用的标签。

尽管与 HTML 规范不一致,但大多数浏览器对自定义属性没有任何限制。

创建此内容的人 HTML 看起来像:

<div tag="something">

HTML5,虽然没有正式发布(HTML5.0在2014年10月达到"recommendation"状态),支持概念通过在标签前添加 "data-" (read more) 自定义标签。所以,从技术上讲,它真的应该写成:

<div data-tag="something">

$("div[data-tag=" + someVariable + "]")