如何修改传递条件语句的对象

时间:2016-12-14 20:21:36

标签: javascript jquery if-statement

我是JS和jQuery的新手,这是我的第一个问题,我希望我说清楚:

我有一个<a>的列表,我想仅将样式应用于href与URL相同的那个。

我试图简化我的html向你展示,如下所示:

<a href="/myWeb/001.html"></a>
<a href="/myWeb/002.html"></a>
<a href="/myWeb/003.html"></a>
<a href="/myWeb/004.html"></a>

然后,这就是我在脚本上开始的(使用jQuery):

var url = window.location.pathname;

if($('a').attr('href') === url){

  //and now I want to apply .css() only to the <a> that passes the condition

}

所以,令人沮丧的是我无法实现攻击正确的对象,我想这不仅仅是简单的:/,任何提示?

感谢。

3 个答案:

答案 0 :(得分:4)

如果你有CSS权力,你就会有力量。

只需选择a

$("a[href="+url+"]")

这是使用CSS中的attribute selector完成的。

然后继续做你的.css()魔法:

$("a[href="+url+"]").css(/*whatever you desire*/);

这适用于您在代码中显示的相对网址。

要使//code.google.com/whatever/abc.html等网址安全,您需要传递用单引号括起来的网址:

$("a[href='"+url+"']")

答案 1 :(得分:1)

看看jQuery&#39; filter()

var url = "/myWeb/004.html";

$("a").filter(function() {
    return $(this).attr("href") === url;
}).css("background-color", "red");

这是JSFiddle

答案 2 :(得分:0)

改为使用filter()

var url = window.location.pathname;

$('a[href]').filter(function() { return this.href === url; } ).css({
   ...
});