我正在尝试读取一对链接的href,并且根据href是什么,我想给一些CSS指定一个链接。这是我尝试过的代码:
$('.pane-menu-block-2 .menu li a').each(function(){
if($('a[href="node/3"]')){ $(this).attr('style','background-image:url(/sites/all/themes/zen/zen-internals/images/fraga_lararen.png)'); }
})
但它不起作用。它为该div中的每个链接提供相同的背景。链接如下所示:
<div class="pane-menu-block-2">
<ul class="menu">
<li><a href="/">Våra program</a></li>
<li><a href="node/3">Fråga läraren</a></li>
</ul>
</div>
答案 0 :(得分:2)
if($('a[href="node/3"]'))
将始终进入if块,因为在javascript中,对象始终被视为true
。
您应该检查如下所示的href:
$('.pane-menu-block-2 .menu li a').each(function(){
if($(this).attr('href') === 'node/3') {
$(this).attr('style','background-image:url(/sites/all/themes/zen/zen-internals/images/fraga_lararen.png)');
}
});
答案 1 :(得分:1)
$('.pane-menu-block-2 .menu li a').each(function(){
if ( $(this).attr('href')==='node/3' ) {
$(this).css('background-image', 'url(/sites/all/themes/zen/zen-internals/images/fraga_lararen.png)');
}
});
或者只需使用选择器,不需要each()
功能:
$('.pane-menu-block-2 .menu li a[href="node/3"]').css('background-image', 'url(/sites/all/themes/zen/zen-internals/images/spank_the_teacher.png)');
答案 2 :(得分:0)
使用.is()
,您可以将当前元素与选择器进行匹配。您在代码中犯的最大错误是您选择了文档中的每个<a>
,而不是使用$(this)
来引用.each()
循环的每次迭代中的当前元素。 / p>
$('.pane-menu-block-2 .menu li a').each(function() {
if($(this).is('a[href="node/3"]')) {
$(this).attr('style','background-image:url(/sites/all/themes/zen/zen-internals/images/fraga_lararen.png)');
}
});
您也可以更简单并使用标准相等(===
来严格键入):
if($(this).attr('href') === "node/3") {
$(this).attr('style','background-image:url(/sites/all/themes/zen/zen-internals/images/fraga_lararen.png)');
}