Jquery 当元素具有特定类时,单击将类添加到元素

Jquery 当元素具有特定类时,单击将类添加到元素,jquery,addclass,Jquery,Addclass,我发现了下面的代码,当它有一个特定的Select类时,它会添加一个Blue类,但是它会将它应用到整个菜单中。我希望在单击时应用它,当它具有Select类时。我希望对li before应用一种效果,以便我可以应用和:after和:before样式 这是原始代码:- <script> $(document).ready(function() { if ($('#headerContent ul li a').hasClass('select')) { $('#he

我发现了下面的代码,当它有一个特定的Select类时,它会添加一个Blue类,但是它会将它应用到整个菜单中。我希望在单击时应用它,当它具有Select类时。我希望对li before应用一种效果,以便我可以应用和:after和:before样式

这是原始代码:-

<script>
    $(document).ready(function() {
    if ($('#headerContent ul li a').hasClass('select')) {
    $('#headerContent ul li a').addClass('Blue');
    }
   });
 </script>
这是我的重写,似乎不起作用

<script>
    $(document).ready(function() {
        if ($('#headerContent ul li a').hasClass('select')).onClick(function() {
    $('#headerContent ul li').addClass('Blue');}) 
     });
</script>
编辑:

我觉得这不是复制品!也许我应该多解释一下。我使用这个和一个jquery插件一起滚动,它在点击时添加了类select!我正在使用这个插件平滑滚动,它向锚标记添加了一类select

我把一个JSFIDLE放在一起:


我已经更新了小提琴。基本上,正如您所看到的,当它具有select时,它会在单击时应用一个类,但是当我单击另一个选项时,它不会将其删除。

如果要附加具有select的事件ti锚元素,则:

$(document).ready(function() {
 $('#headerContent ul li a.select').click(function() {
 $('.Blue').removeClass('Blue');
 $(this).parent().addClass('Blue');//add class blue to currently clicked anchor with class select
 }); 
});
如果希望单击仅在元素具有select时发生,则可以使用事件委派或在上面添加签入处理程序来检查元素是否具有select类

 $(document).ready(function() {
   $('#headerContent ul li').on('click','a.select',function() {
     $('.Blue').removeClass('Blue');
     $(this).parent().addClass('Blue');//add class blue to currently clicked anchor with class select
   }); 
 });

假设您应该委派事件,以便动态筛选选择器。select元素可以根据用户交互的不同而变化:

$(document).ready(function () {
    $('#headerContent ul li').on('click', 'a.select', function () {
        $(this).addClass('Blue');
    });
});

我想添加一个类的蓝色到li时,锚标签已被删除 精选的一类

因此,请使用:

$(document).ready(function () {
    $('#headerContent ul li').on('click', 'a.select', function () {
        $(this).closest('li').addClass('Blue');
    });
});

现在我想知道你是否想要点击它?!如果不是,但当插件添加.select类时,这肯定是一个XY问题。你的问题问得太差了,我怎么。。。在这种情况下,使用任何插件回调,检查DOC。但是当然,我们不知道你在说哪个插件,所以…

你想把Blue类仅仅应用到锚标记上吗?你的重写尝试有一些严重的问题。不能在if语句上调用函数。。。我建议您开始阅读一些基本的javascript教程,因为您显然缺少对langaugeI的一些基本理解。当锚定标记有一个Select类时,我想在li中添加一个Blue类。这是由jquery滚动插件添加的。@KirstyMarks:我建议您在问题中添加一些html,如果您能提供一个完整的示例,以确保我们提供的答案确实有效,也许您应该使用delegationI删除我的upvote,因为您的答案以前是正确的,现在你的答案和A.Wolff的答案一样,所以可能不在这里我看不出谁投了反对票,但这不是以前的一个重复,也许我的编辑会解释更多,我不觉得它像点击一样简单,或者我会修改它为什么你对这个答案争论不休,这些评论属于question@MilindAnantwar:您需要修复第一个示例中的代码。。。“额外”和clickon不是validA Wolff,我确实更新了我的问题,使之更具体。该插件应用一类单击选择。我还指定了我正在使用的插件以及一个JS提琴来概述这一点。什么时候应该添加Blue类?我还是不明白你的预期行为我会再次更新,抱歉。我又更新了一次。我想把它应用到li-before,这样我就可以在后面和前面添加一个selector@KirstyMarks我希望对li before应用一种效果,以便我可以应用和:after和:before样式。老实说,我认为您应该重新提出一个新问题,清楚地说明您的期望,因为就个人而言,我不认为使用一些伪元素之间有任何关系,例如:before&:after&关于添加一个类Blue。对不起,我要放弃了