3 回答
为 HTML 锚元素“a”设置“hash”属性
<a> 元素 (HTMLLinkElement) 已经具有 DOM Level 0hash
属性。它像 window.location.hash 一样用于读取或设置元素的href
.
Setting a.hash
,无论是直接设置还是通过 jQuery 的attr()
包装器设置,都只是在链接的 URL 中设置锚名称。您可以通过调用 DOM 方法故意说您想要一个实际的属性a.setAttribute('hash', value)
,但由于长期存在的错误混淆了属性和属性,这在 IE6/7 中不起作用。
这是向元素添加自定义非标准属性的问题之一,您永远不知道它何时会与现有名称发生冲突。HTML5 会建议您将自定义属性限制为以“data-”开头的名称,但总的来说,如果可以的话,最好找到另一种存储数据的方式。
可能您的问题是标签没有任何hash
属性。<a>
也许您正在寻找name
属性,或者您想更改链接中的哈希值href
,在这种情况下,您必须解析链接文本并使用正则表达式替换哈希值。
设置哈希的另一个选项。这仅适用于表达式返回 a 元素的情况。这是因为 hash 是实际 dom 元素的属性。
$(expr).each(function() {
this.hash = value;
});
如果您需要测试以查看其是否为 a 标签,请使用此
$(expr).is('a').each(function() {
this.hash = value;
});
如果您实际上想要附加一些自定义属性,我建议您使用 data 方法添加值
$(expr).data('myHash', value);