在Jquery中使用URL Hash来更改ID类

时间:2014-01-07 11:50:36

标签: jquery class url hash

首先,该网址是从其他网页发布的:

http://www.xxredxiiixx.com/games/

点击链接转到示例

http://www.xxredxiiixx.com/games/PS4/Knack#42

这显示了Knack的最后奖杯(#42)

我已经有了这个代码(jQuery)

var hash = location.hash.replace("#","");    
$(hash).removeClass("row").removeClass("row1").addClass("row2");

var正确地获得#42但我似乎无法改变类以突出显示所选的奖杯。这些ID只是简单地编号

<tr class="row<?php echo ($j++ % 2 == 0 ? '' : '1'); ?>" id="<?php echo $xmb; ?>">
<tr class="row" id="42">

任何帮助都会很棒。

.row2 td{
    background-color: #FFF;
}
.row1 td{
    background-color: #242424;
    border-top: 1px solid #121212;
}
.row td{
    background-color: #2a2a2a;
    border-top: 1px solid #121212;
}

var hash = location.hash.replace("#","");
$(hash).removeClass("row").removeClass("row1").addClass("row2");

<tr class="row" id="42">

3 个答案:

答案 0 :(得分:2)

您不必在.addClass函数中提供点removeClass

$(hash).removeClass("row row1").addClass("row2");

答案 1 :(得分:1)

您删除了#,其中包含字符串42。然后你尝试使用42作为错误的选择器。请勿删除#符号。

var hash = location.hash; // "#42"
$(hash).removeClass("row row1").addClass("row2");

你可能想看看这个问题:
What are valid values for the id attribute in HTML

答案 2 :(得分:0)

removeClass是一个仅从元素中删除类的函数。无需将其指定为.类选择器

$(hash).removeClass("row").removeClass("row1").addClass("row2");