在<a> on click of </a> <a></a> </i>中切换<i>的类

时间:2014-06-13 11:45:18

标签: jquery toggleclass

我希望在点击链接后切换链接内部的图标类。我现在正在工作,但点击后我的所有图标都改变了 - 我在页面上有多个手风琴。我只想更改点击链接的图标。有人可以帮忙吗?我知道必须要做的就是这个&#39;但我无法弄清楚。

jQuery代码

$( ".accordion a" ).click(function() {
    $( ".accordion a i" ).toggleClass('fa-caret-up ','fa-caret-down');
});

HTML代码

<a href="#panel{accordion_number}">{accordion_heading} <i class="fa fa-caret-down linkIcon"></i></a>

5 个答案:

答案 0 :(得分:5)

您没有正确使用.toggleClass()签名。您尝试在其上使用的签名是.toggleClass('class1 class2')

尝试,

$( ".accordion a" ).click(function() {
  $(this).find("i").toggleClass('fa-caret-up fa-caret-down');
});

我错过了解释,你需要在click事件中使用$(this)来定位当前点击的元素。否则会影响与选择器匹配的所有元素。

答案 1 :(得分:1)

使用.find,如下所示:

$( ".accordion a" ).click(function() {
    $(this).find("i").toggleClass('fa-caret-up fa-caret-down');
});

答案 2 :(得分:0)

1)ToggleClass语法错误

2)使用当前元素$(this)

$( ".accordion a" ).click(function() {

    $(this).find("i").toggleClass('fa-caret-up fa-caret-down');

});

答案 3 :(得分:0)

使用this引用获取当前元素并找到获取i并更改

试试这个

$( ".accordion a" ).click(function() {
    $( this ).find('i').toggleClass('fa-caret-up fa-caret-down');
});

答案 4 :(得分:0)

如上所述,您需要找到特定的&#34; i&#34;在您单击的链接中。 但是,您可能还需要阻止链接进入任何地方

$( ".accordion a" ).click(function(e) {
  e.preventDefault(); // needed if you want to stay on the page
  $(this).find("i").toggleClass('fa-caret-up fa-caret-down');
});