如何用id替换jquery attr rel

时间:2012-10-01 19:31:53

标签: javascript jquery css w3c

我想让我的网页w3c有效。所以我一步一步纠正错误有效,我使用html5 doctype,我发现错误

第348行,第81列:在HTML5 + RDFa 1.1 Lite文档中的li元素上不允许使用RDFa Core属性rel。请考虑检查HTML5 + RDFa 1.1模式。

所以我试图替换id而不是rel,w3c有效但代码不起作用。如何在不使用rel的情况下使用以下代码?

<script type="text/javascript">
$(document).ready(function() {
$(".tab_content").hide();
$(".tab_content:first").show(); 
$("ul.tabs li").click(function() {
    $("ul.tabs li").removeClass("active");
    $(this).addClass("active");
    $(".tab_content").hide();
    var activeTab = $(this).attr("rel"); 
    $("#"+activeTab).fadeIn(); 
});
});
</script> 
<ul class="tabs">
<li class="active" rel="tab2">&nbsp;&nbsp;Reviews&nbsp;&nbsp;</li><li rel="tab3">News</li><li rel="tab4">&nbsp;&nbsp;Articles&nbsp;</li></ul>


<div id="tab1" class="tab_content" style="width:326px;">data</div>
<div id="tab2" class="tab_content" style="width:326px;">data tab2</div> 

2 个答案:

答案 0 :(得分:2)

手动(不使用Javascript)浏览HTML,找到每个<li>元素,并将rel替换为id。确保页面上的ID是唯一的。因此,您必须将其更改为liTab2liTab3

然后,在您的jQuery中,将$(this).attr("rel");替换为this.id.replace("li", "").toLowerCase();

不完全确定你在答案中还有什么需要......

答案 1 :(得分:2)

对于与标签相关联的所有li元素,请更改:

<li class="active" rel="tab2">&nbsp;&nbsp;Reviews&nbsp;&nbsp;</li>

为:

<li class="active" data-target="tab2">&nbsp;&nbsp;Reviews&nbsp;&nbsp;</li>

并改变

var activeTab = $(this).attr("rel");

为:

var activeTab = $(this).data("target");

请注意,在将HTML5 data- *属性拉入对象的数据集时,使用jQuery默认行为。