JQuery,为<a>标签设置属性

7 jquery attributes

我使用$(expr).attr("hash",value)为HTML锚元素"a"设置"哈希"属性,但Jquery不会这样做.但如果我将expr更改为"div",那么我可以将"hash"属性设置为"div"标签.

这个行为是xhtml规范吗?我可以设置"a"标签属性的"id".因为id是html"a"标签的内置属性.

bob*_*nce 14

为HTML锚元素"a"设置"哈希"属性

<a>元素(HTMLLinkElement)已具有DOM Level 0 hash属性.它像window.location.hash一样用于读取或设置元素引用的URL末尾的"...#anchor"部分href.

a.hash无论是直接设置还是通过jQuery的attr()包装器设置,只需在链接的URL中设置锚名称.您可以通过调用DOM方法故意说您想要一个实际的属性a.setAttribute('hash', value),除了这在IE6/7中不起作用,因为它会混淆属性和属性的长期错误.

这是向元素添加自定义非标准属性的问题之一,您永远不知道它何时会与现有名称冲突.HTML5会建议您将自定义属性限制为以"data-"开头的名称,但一般来说,如果可以的话,最好找到另一种存储数据的方法.


Sop*_*ert 6

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