jQuery突出显示特定<;a>;当下拉菜单打开时

jQuery突出显示特定<;a>;当下拉菜单打开时,jquery,Jquery,我想在下拉菜单打开时更改切换按钮标签的颜色。不幸的是,所有的标记都会高亮显示。我想针对特定的标签 这是我的密码: <script> $(document).ready(function() { $(".dropdown-toggle").click(function(e) { e.preventDefault(); $('.dropdown-menu').not($(this).next('.dropdown-menu')).fadeOut()

我想在下拉菜单打开时更改切换按钮标签的颜色。不幸的是,所有的标记都会高亮显示。我想针对特定的标签

这是我的密码:

<script>
$(document).ready(function() {
 $(".dropdown-toggle").click(function(e) {
        e.preventDefault();
        $('.dropdown-menu').not($(this).next('.dropdown-menu')).fadeOut()
        $(this).next('.dropdown-menu').fadeToggle().toggleClass('isOpen');

        if ($('.dropdown-menu').hasClass('isOpen')) {
            $(this).html("-"); 
            $(".sidebar-collections .sdc-element ul li a").css("color", "#f37727");
        } else {
            $(this).html("+");
            $(".sidebar-collections .sdc-element ul li a").css("color", "#000");
        }
    });
});

$(文档).ready(函数(){
$(“.dropdown toggle”)。单击(函数(e){
e、 预防默认值();
$('.dropdown menu').not($(this.next('.dropdown menu')).fadeOut()
$(this).next('.dropdown menu').fadeToggle().toggleClass('isOpen');
if($('.dropdown menu').hasClass('isOpen')){
$(this.html(“-”);
$(“.sidebarcollections.sdc元素ul li a”).css(“颜色”,“f37727”);
}否则{
$(this.html(“+”);
$(“.sidebarcollections.sdc元素ul li a”).css(“颜色”,“#000”);
}
});
});

这是我的问题

  • +
  • 当我的下拉列表打开时,我想突出显示特定的a href,如果关闭,它将返回黑色。

    您可以这样尝试

      $(this).children(".sidebar-collections .sdc-element ul li a").css("color", "#f37727");
    
    你可以这样试试

      $(this).children(".sidebar-collections .sdc-element ul li a").css("color", "#f37727");
    

    您需要通过css应用颜色,而目标切换按钮的颜色可以通过jQuery进行如下更改:

    $(document).ready(function() {
     $(".dropdown-toggle").click(function(e) {
            e.preventDefault();
            $('.dropdown-menu').not($(this).next('.dropdown-menu')).fadeOut()
            $(this).next('.dropdown-menu').fadeToggle().toggleClass('isOpen');
    
            if ($('.dropdown-menu').hasClass('isOpen')) {
                $(this).html("-"); 
                $(this).prev().css("color", "#f37727");
            } else {
                $(this).html("+");
            }
        });
    });
    
    CSS:


    您需要通过css应用颜色,而目标切换按钮的颜色可以通过jQuery进行如下更改:

    $(document).ready(function() {
     $(".dropdown-toggle").click(function(e) {
            e.preventDefault();
            $('.dropdown-menu').not($(this).next('.dropdown-menu')).fadeOut()
            $(this).next('.dropdown-menu').fadeToggle().toggleClass('isOpen');
    
            if ($('.dropdown-menu').hasClass('isOpen')) {
                $(this).html("-"); 
                $(this).prev().css("color", "#f37727");
            } else {
                $(this).html("+");
            }
        });
    });
    
    CSS:


    如果希望元素正好位于单击按钮的左侧,可以使用以下代码:

    $(function() {
            $(".dropdown-toggle").click(function(e) {
                e.preventDefault();
                $('.dropdown-menu').not($(this).next('.dropdown-menu')).fadeOut()
                $(this).next('.dropdown-menu').fadeToggle().toggleClass('isOpen');
    
                if ($('.dropdown-menu').hasClass('isOpen')) {
                    $(this).html("-"); 
                    //$(".sidebar-collections .sdc-element ul li a").css("color", "#f37727");
                    $(this).siblings('a').css("color", "#f37727");
                } else {
                    $(this).html("+");
                    //$(".sidebar-collections .sdc-element ul li a").css("color", "#000");
                    $(this).siblings('a').css("color", "#000");
                }
            });
        });
    

    如果您仍然需要改进,请告诉我。

    如果您需要单击按钮左侧的元素,可以使用以下代码:

    $(function() {
            $(".dropdown-toggle").click(function(e) {
                e.preventDefault();
                $('.dropdown-menu').not($(this).next('.dropdown-menu')).fadeOut()
                $(this).next('.dropdown-menu').fadeToggle().toggleClass('isOpen');
    
                if ($('.dropdown-menu').hasClass('isOpen')) {
                    $(this).html("-"); 
                    //$(".sidebar-collections .sdc-element ul li a").css("color", "#f37727");
                    $(this).siblings('a').css("color", "#f37727");
                } else {
                    $(this).html("+");
                    //$(".sidebar-collections .sdc-element ul li a").css("color", "#000");
                    $(this).siblings('a').css("color", "#000");
                }
            });
        });
    


    如果您还需要改进,请告诉我。

    您可以同时发布HTML代码吗。我有答案,但正在等待HTML发布正确的答案。@Rijopp我已经更新了我的帖子,请您也发布HTML代码。我有答案,但正在等待HTML发布正确的答案。@RijoKP我已经更新了我的postDevesh-你的意思是为了解决我的问题而使用each()来针对特定的a href?是的,你必须查找特定的href匹配属性,然后更改颜色。到目前为止,您的选择器正在使用aDevesh选择所有标记-是这样吗$(“.sidebar collections.sdc element ul li a”).each(function(){$(this.css(“color”),“#f37727”)}@KobeBryan我已经更新了我的答案。您只能查找当前单击的元素的子元素以更改颜色。Devesh-答案之一。兄弟元素不是子元素。也可以。Devesh-您的意思是为了解决我的问题,使用each()来针对特定的a href?是的,您必须查找特定的href匹配属性,然后更改颜色。到目前为止,您的选择器正在使用aDevesh选择所有标记-是这样吗$(“.sidebar collections.sdc element ul li a”).each(function(){$(this.css(“color”),“#f37727”)}@KobeBryan我已经更新了我的答案。您只能查找当前单击的元素的子元素以更改颜色。Devesh-答案之一。兄弟元素不是子元素。同样有效。海德尔-它不起作用,因为目标突出显示在dropdown div之外。是否要更改已切换的下拉列表的颜色?对,不。切换时,应突出显示下拉菜单顶部的a href。检查我的html。哦,好的。让我看看你的意思是切换按钮在中间-它不起作用,因为目标突出显示在下拉div之外。你想更改被切换的下拉列表的颜色吗?对,不。切换时,应突出显示下拉菜单顶部的a href。检查我的html。哦,好的。让我看看你指的是拨动钮Rijo——德维什也回答了孩子们。您使用的兄弟姐妹也是有效的。我们能说这是最灵活的吗?海德尔·阿里回答了$(this.prev().css(“color”,“#f37727”);我认为这里没有带$(this)元素的“children”选项。(抱歉@Devesh)刚刚指出了我测试过的内容。这些代码不会影响页面其他部分的任何a href吗?应该不会,因为我们针对的是特定元素。谢谢Kobe:)Rijo--Devesh也回答了孩子们的问题。您使用的兄弟姐妹也是有效的。我们能说这是最灵活的吗?海德尔·阿里回答了$(this.prev().css(“color”,“#f37727”);我认为这里没有带$(this)元素的“children”选项。(抱歉@Devesh)刚刚指出了我已经测试过的内容。这些代码不会影响页面其他部分中的任何a href吗?不应该影响,因为我们针对的是特定元素。谢谢你:)