更改子元素CSS包含活动的类

时间:2015-02-04 09:51:50

标签: javascript jquery

我正在尝试调用一个函数来验证元素是否包含活动类我是否在我的span中添加图片但是问题所有span添加img标记即使我有条件也可以我有人可以解释对我来说为什么?我该如何解决?

我的分区

<div class="navbar-collapse collapse">
              <ul class="nav navbar-nav pull-right">
                  <li class="active"><a href="index.html"><span>Home</a></span><span></span></li>
                  <li><a href="reservation.html"><span>ChambresReservations</span></a><span></span></li>
                  <li><a href="contact.html"><span>Contact-US</span></a><span></span></li>
              </ul>
            </div>

我的JS

$(function(){
    var classExist=$(".navbar-collapse li").hasClass("active");
    if(classExist){
        $(this).find('span:nth-child(2)').append('<img src="images/site/bg-arrow-mr.png"/>')
    }
});

4 个答案:

答案 0 :(得分:4)

您的脚本存在一些问题

你可以获得具有&#34; 活动&#34;的li元素通过

var elementHavingActiveClass = $(".navbar-collapse ul li.active");

然后按

将图像设置为span元素
$(elementHavingActiveClass ).find('span:nth-child(2)').append('<img src="images/site/bg-arrow-mr.png"/>')

答案 1 :(得分:1)

在一行中,您可以像这样实现目标。

$(".navbar-collapse li.active").find('span:nth-child(2)').append('<img src="images/site/bg-arrow-mr.png"/>');

答案 2 :(得分:1)

你不需要迭代li元素。您可以使用选择器li.active简单地定位具有类活动的li元素,然后在其中的第n个span中追加内容:

$(".navbar-collapse li.active").find('span:nth-child(2)').append('<img src="images/site/bg-arrow-mr.png"/>')

答案 3 :(得分:0)

试试这个:您可以直接使用jQuery选择器查找具有活动类的li,请参阅下面的代码

$(function(){
    $(".navbar-collapse li.active").find('span:nth-child(2)').append('<img src="images/site/bg-arrow-mr.png"/>')
});