我使用$(expr).attr("hash",value)为HTML锚元素"a"设置"哈希"属性,但Jquery不会这样做.但如果我将expr更改为"div",那么我可以将"hash"属性设置为"div"标签.
这个行为是xhtml规范吗?我可以设置"a"标签属性的"id".因为id是html"a"标签的内置属性.
为HTML锚元素"a"设置"哈希"属性
a.hash
无论是直接设置还是通过jQuery的attr()
包装器设置,只需在链接的URL中设置锚名称.您可以通过调用DOM方法故意说您想要一个实际的属性a.setAttribute('hash', value)
,除了这在IE6/7中不起作用,因为它会混淆属性和属性的长期错误.
这是向元素添加自定义非标准属性的问题之一,您永远不知道它何时会与现有名称冲突.HTML5会建议您将自定义属性限制为以"data-"开头的名称,但一般来说,如果可以的话,最好找到另一种存储数据的方法.
可能你的麻烦是标签没有任何hash
属性.也许您正在寻找
name
属性,或者您可能想要更改链接中的哈希值href
,在这种情况下,您将不得不解析链接文本并使用正则表达式替换哈希值.