为什么我的addClass不仅仅针对当前元素?

时间:2016-06-22 15:59:28

标签: jquery if-statement addclass

当我使用Icon语句添加课程if时,它会将其添加到正确的h3,但也会添加到正确的h3元素之上,即使{上面的{1}}是h30可以是Icon0

1

image

2 个答案:

答案 0 :(得分:0)

假设你的目标<h3>是上面一行附加的目标,请尝试:

        { 
            $('#accordion').append($('<h3>').html(Agency));  
            if (Icon == 1) {
                $('#accordion h3').addClass('Icon');
            }
            AccordionChild = $('<div>');                                                                        
        }
        AccordionChild.append("<div>").html(ToolsList);
        $('#accordion').append(AccordionChild);
    });
}

更多阅读:https://api.jquery.com/multiple-selector/

修改
只选择一个孩子&#34; <h3>,您可以选择:

最接近:$('#accordion').closest("h3").addClass('Icon');
第一个:$('#accordion').first("h3").addClass('Icon');
最后一个:$('#accordion').last("h3").addClass('Icon');
下面的第二级:
$('#accordion').children("h3").eq(1).addClass('Icon');

根据您的上一次评论,“所有”都在同一级别上 您必须确定哪一个具有icon==1条件......

但是当你有,你会做这样的事情:

$('#accordion h3').eq(1).addClass('Icon');    // Zero based... So it's the 2nd
$('#accordion h3').eq(3).addClass('Icon');    // 4th

等等。
或者首先和最后。 ;)

提示 :谷歌这些关键词:jQuery selectordescription of what you want在你的话语中......你&#39;找到。
在搜索时,请注意那些选择元素列表并且只选择一个元素的元素。 ;)

答案 1 :(得分:0)

让它发挥作用。不管怎么说都要写...欣赏输入!

  

{$('#accordion');

     

if(Icon =='1'){

    $('#accordion') .append($(`'<h3>'`) .html(Agency) .addClass('Icon'));

  }
     

其他{

    $('#accordion') .append($(`'<h3>'`) .html(Agency));  

  } 
     

}