我有像这样的HTML结构
<ul id="nav">
<li><a href="http://localhost/.../">Homepage</a></li>
<li><a href="http://localhost/.../">Our Profile</a></li>
...
...
...
</ul>
我想用HTML结构做的是根据<a>
值突出显示href
元素。所以我编写了一个像这样的小jquery脚本
jQuery("ul#nav li a").each(function(index, element){
if($(this).attr("href") == "http://mypreferredURL.com"){
$(this).addClass("example");
}
});
但这不起作用。我认为那个小jquery片段上的$(this)
应该引用匹配的<a>
元素吗?但似乎$(this)
指的是元素的href
值,而不是元素本身(我通过执行alert($(this));
来测试它)
那么,我在这里做错了吗?我怎样才能真正遍历所有<a>
元素并真正获得<a>
元素本身而不是href
值。
或者如果你有更好的建议让我做这种事情(根据其href值突出显示元素),我会很高兴听到你的建议:)
之前
答案 0 :(得分:3)
请注意,如果您要使用jQuery
,那么使用$
毫无意义。
就更简洁的方法而言,您可以使用[attr~="value"]
selector:
$('ul#nav li a[href^="http://mypreferredURL.com"]').addClass("example");
这将找到以http://mypreferredURL.com
答案 1 :(得分:2)
@Eric:是的,我也在使用原型,所以我必须使用jQuery而不是$ ,,,它有什么问题吗?
是。您正在使用原型$
,您指的是jQuery $
。要解决这个问题,您应该使用:
jQuery("ul#nav li a").each(function(index, element){
if(jQuery(this).attr("href") == "http://mypreferredURL.com"){
jQuery(this).addClass("example");
}
});
或
(function($) {
$("ul#nav li a").each(function(index, element){
if($(this).attr("href") == "http://mypreferredURL.com"){
$(this).addClass("example");
}
});
})(jQuery);
你最好的选择是不要同时使用jQuery和原型!
答案 2 :(得分:0)
你正在做什么应该有效,但这只是一种较短的方式,假设你只想检查一个网址?:
$('#nav li a[href="http://mypreferredURL.com"]').addClass("example");
答案 3 :(得分:-1)