我编写了这行jQuery代码来比较当前的url和link url,以便为它分配活动的类,但是将c和d变量中的最后一行url作为undefined。
为什么会这样?
var a=window.location.href;
var d=a+$("a.date sort_by_time").attr('href');
var c=a+$("a.date sort_by_some").attr('href');
console.log(c);
console.log(d);
if (a==c) {
$('.date sort_by_time').addClass('active');
}
if (a==d) {
$('.date sort_by_some').addClass('active');
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="date">
<p>sorting: </p>
<a href="?sortby=some" class="sort_by_some"><i class="icon-star-empty"></i>by some</a>
<a href="?sortby=date" class="sort_by_time">by time<i class="icon-calendar"></i></a>
</span>
&#13;
答案 0 :(得分:0)
我不确定你想在这里实现什么。我不确定&#39; a&#39;变量来自。你有没有将所有代码复制到帖子上?
这是你想要的吗?如果没有,请提供更多信息。https://jsfiddle.net/at3e1u84/
var d = $(".date > .sort_by_time").attr('href');
var c = $(".date > .sort_by_some").attr('href');
console.log(c);
console.log(d);
更新:
我通过添加一些正则表达式使它比原来的想法复杂得多。我将解释原因:
如果链接是www.example.com/?sortby=some:
a = www.example.com/?sortby=some
c = www.example.com/?sortby=some?sortby=some
d = www.example.com/?sortby=some?sortby=time
a永远不能等于c或d,因为它与自身相比+加法。
这就是为什么我用正则表达式来获取&#39;?...&#39;网址的一部分,并将其与href进行比较。
我希望这可以解决您的问题。
https://jsfiddle.net/at3e1u84/4/
let regex = /\?sort.*/;
let matches = (window.location.href).match(regex);
var a = matches ? matches[0] : null;
var d = $(".date > .sort_by_time").attr('href');
var c = $(".date > .sort_by_some").attr('href');
console.log(a);
console.log(c);
console.log(d);
console.log(window.location.href)
if (a == c) {
$('.date > .sort_by_time').addClass('active');
}
if (a == d) {
$('.date > .sort_by_some').addClass('active');
}
答案 1 :(得分:0)
您可以使用解决方案
var a=window.location.href;
var d = a + $("a.sort_by_time").attr('href');
var c = a + $("a.sort_by_some").attr('href');
console.log(c);
console.log(d);
if (a==c) {
$('.date sort_by_time').addClass('active');
}
if (a==d) {
$('.date sort_by_some').addClass('active');
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="date">
<p>sorting: </p>
<a href="?sortby=some" class="sort_by_some">
<i class="icon-star-empty"></i>by some
</a>
<a href="?sortby=date" class="sort_by_time">by time
<i class="icon-calendar"></i>
</a>
</span>
&#13;
希望这会对你有所帮助。