武林网(www.vevb.com)文章简介:html标签的用用户属性通过w3c验证.
昨天一个朋友的项目,客户需要通过w3c验证(可能你认为这是很操蛋的一件事情,其实我也这样认为, 浏览器兼容才是硬道理, 但顾客就是死了很多年但人们还以为他还活着一个扯蛋的东东,西方人叫做上帝-god, 狗的,就差一个ri,他们的需求,不满足就没办法呀)。但是他在标签里写了一些用户属性,所以通不过。问我解决的方案,想了一些方法给他。首先解释一下什么叫用户属性,如果你是高手,可以不用看。 <tag yourAttr=yourAttrValue ></tag>。红色的部分就是用户属性,有时候我们需要用javascript code某些东西的时候,这个必不可少。 但他确实不能通过W3C的验证。
下面是我能想到的一些解决方案:
一、用子标签隐藏来代替用户属性。
<tag class=normal>
<tag class=myAttr>myAttrValue</tag>
<tag>内容</tag>
</tag>
然后设置css
.myAttr{display:none;}
怎么获取那个数据,可以自己去查一下。
二、使用HTML5 DTD + data- 来解决
html5支持用户自定义属性,但要求必须以data-开始,可以通过验证。
<tag data-myAttr=myAttrValue></tag>
三、使用通用属性来解决
title属性是大多数标签都可以有的,完全可以通过验证。
<tag title=myAttrValue></tag>
可是,问题来了,当鼠标移动到标签上,title直接显示出来,很不好的用户体验。
所以,想到了用javascript或者jquery来解决这个问题:
(function($){
$.fn.setUserAttr=function(options){
var defaults={dataName:userData};
var opts = $.extend({},defaults,options||{});
return this.each(function(){
$this=$(this);
var userAttrVal=$this.attr(title);
$this.attr(title,).data(opts.dataName,userAttrVal);
})
};
})(jQuery)
html:
<tag class=useAttr title=myAttrValue></tag>
应用:
$(.useAttr).setUserAttr();
通过$(.useAttr).data(userData)来获取数据.
或者
$(.useAttr).setUserAttr({dataName:yourAttrName});
通过 $(.useAttr).data(yourAttrName )来获取数据
当然,只是个人的一些想法。