我是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
}
所以,令人沮丧的是我无法实现攻击正确的对象,我想这不仅仅是简单的:/,任何提示?
感谢。
答案 0 :(得分:4)
只需选择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({
...
});