哪些HTML标记支持name属性?

时间:2014-12-31 18:24:40

标签: html

是否所有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抓取。

4 个答案:

答案 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-