7
4

3 回答 3

14

为 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-”开头的名称,但总的来说,如果可以的话,最好找到另一种存储数据的方式。

于 2009-02-11T02:44:34.820 回答
6

可能您的问题是标签没有任何hash属性。<a>也许您正在寻找name属性,或者您想更改链接中的哈希值href,在这种情况下,您必须解析链接文本并使用正则表达式替换哈希值。

于 2009-02-11T02:01:40.913 回答
0

设置哈希的另一个选项。这仅适用于表达式返回 a 元素的情况。这是因为 hash 是实际 dom 元素的属性。

$(expr).each(function() {
  this.hash = value;
});

如果您需要测试以查看其是否为 a 标签,请使用此

$(expr).is('a').each(function() {
  this.hash = value;
});

如果您实际上想要附加一些自定义属性,我建议您使用 data 方法添加值

$(expr).data('myHash', value);
于 2009-02-11T02:53:12.583 回答