2012-01-15 36 views
3

我在jQuery中为参数化(#!hashbang)AJAX调用使用了rel值。锚标记中rel属性的未注册值

<a id='_qualifier' rel='telephony' href='contact.php'>contact</a> 

和使用jQuery:

var hashbang = "#!"+$("#_qualifier").attr('rel'); //gives desired result=>"#!telephony" 

但是,当我确认上validator.w3.org的页面,它给了我错误:

Bad value #telephony for attribute rel on element a: Keyword #telephony is not registered.

我周围中搜索,并根据HTML5规范herehere,rel属性应该具有已注册/预定义的值。

  1. 是否有解决方法在HTML5中使用rel的自定义值而不失败验证?
  2. 它对HTML4文档类型也无效吗?

回答

7

您可以使用自定义属性:

<a href="#" data-something="telephony">...</a> 

它是兼容HTML5,但不是HTML4和XHTML。 您将像访问jQuery一样访问属性。

您可以在the HTML5 reference找到更多的信息。

+0

感谢您的回答。这正是我需要的,以及我正在做的rel属性。即使在不符合HTML5的浏览器中,JavaScript/jQuery也可以访问该属性的值。因此它实现了我的目的。谢谢! – 2012-01-15 02:51:22

2

Is there a work around to use custom values for rel in HTML5, without failing the validation?

微格式页面是Wiki。如果您确信您正确使用rel并且没有其他适当的rel值已经注册,您可以将您自己的值添加为建议的值。这样做的说明可以在这里找到:http://dev.w3.org/html5/spec/links.html#other-link-types

根据HTML5规范,这将使您的相对值有效。当然,自动化验证器可能需要一段时间才能赶上这一点,但这只是一个技术问题。不是,它不是。

+0

感谢您的澄清。我猜想在同一个域名(或者在我的情况下)中,为当前页面和目标页面之间的关系确定正确的值会是一个延伸。我会和@ ldiqual的建议一起去。谢谢! – 2012-01-15 02:48:14

-2

对于例如,您可以使用'a'标签的任何其他属性。 'title'

+2

属性有其自己的含义和效果;例如,'title'属性值通常显示为鼠标悬停时的工具提示。 – 2012-01-15 06:58:28