简单的jquery比较不起作用

时间:2016-02-23 12:53:42

标签: jquery

我想在nav元素中添加一个活动类,但是我没有让它工作。 我的代码是:

$(document).ready(function() {
    if ($('a[href="<?php echo RoutingClass::getView(); ?>"]') == $('a[href="home"]')) {
        $('a[href="home"]').addClass('active');
    }
});

当它在浏览器中解析时,它看起来像这样(在主页上):

$(document).ready(function() {
    if ($('a[href="home"]') == $('a[href="home"]')) {
        $('a[href="home"]').addClass('active');
    }
});

当我省略if比较时,它只是添加活动类,但在其中,它不会。

3 个答案:

答案 0 :(得分:0)

有关jquery相等性的讨论,请参阅jQuery object equality

我对您的代码的建议如下:

$(document).ready(function() {
    if (<?php echo RoutingClass::getView()=='home'?'1':'0' ?>)) {
        $('a[href="home"]').addClass('active');
    }
});

答案 1 :(得分:0)

您正在比较2个DOM元素。

让我们为每个锚标签使用ID,我称之为a1和a2:

$('a#a1').attr('href') == $('a#a2').attr('href')

答案 2 :(得分:0)

您可以检查您选择的jQuery元素是否具有类似的home href:

$('a[href="home"]').attr("href") == "home"

您的代码可以这样工作:

$(document).ready(function() {
if ( $('a[href="home"]').attr("href") == "home" ) {
    $('a[href="home"]').addClass('active');
}});