是否所有HTML标记都支持name属性,或者只有少数人可以使用name属性?此外,所有标签都支持title属性吗?
我问的原因是因为我需要在这些属性中存储有关当前元素的信息。 这是一个例子:
<img src="example-image.jpg" alt="Example Image" title="Additional Information" name="Even more info"/>
<div class="example-word" title="Information about this tag" name="More information about this tag">Word</div>
我存储在属性中的这些附加信息将通过javascript抓取。
答案 0 :(得分:5)
根据MDN name
正式仅适用于以下元素:<a>, <applet>, <button>, <form>, <frame>, <iframe>, <img>, <input>, <map>, <meta>, <object>, <param>, <select>, and <textarea>
- 基本上形成字段,链接和插件对象。
如果要使用元素存储其他信息(元数据),则应查看data-
属性。这是HTML5的推荐方法,但也适用于旧版浏览器。这也意味着您可以根据需要存储多个不同的额外数据
<img src="example-image.jpg" alt="Example Image" title="Additional Information"
data-name="Even more info" data-other-info="Some other information" />
<div class="example-word" title="Information about this tag"
data-name="More information about this tag">Word</div>
答案 1 :(得分:1)
您可以添加自己的标签并通过javascript阅读。这些代码必须以data-
开头:
<div data-whatever="Information the world needs"></div>
答案 2 :(得分:1)
标签不支持任何东西。 HTML规范定义哪些属性对哪些元素有效。对于name
属性以及title
属性,这取决于HTML版本。
浏览器并不关心规格。如果您的标记包含属性foo=bar
,则他们很乐意在元素节点的foo
属性中包含attributes
。它们可能也可能不会使foo
成为节点本身的属性。对于title
,会发生这种情况,即“现代浏览器支持title
所有元素”,这也意味着大多数浏览器将该属性实现为“工具提示”,这是一个可用性的噩梦,但我离题了。对于name
,这会发生在某些元素上,但不是全部,对于表单内的控件,该属性也具有特殊含义(它会影响控件的值是否包含在内的问题)在表格数据中。)
存储数据的推荐方法是使用data-*
属性,因为除了在脚本或样式表中指定的内容之外,它们不会有任何意义和影响。
答案 3 :(得分:0)
您确实应该使用data-
属性存储它,但您始终可以使用name
并按以下方式访问它:
obj.getAttribute('name'); //Pure JavaScript
$(obj).attr('name'); //jQuery
但实际上,坚持data-
。