【问题标题】:Change the text color just clicked not all更改刚刚单击的文本颜色不是全部
【发布时间】:2014-09-04 19:17:57
【问题描述】:

我有一个列表,当您单击 div“accordionHead”更改时,我只需要一对一地单击,而不是全部。

$('.accordionHead').each( function(){
  $(this).bind('click', function(){
      $(this).find('h2 a').css("color", "green");
  });
});

jsfiddle

【问题讨论】:

  • 它对我来说似乎工作正常。
  • 你的小提琴按你说的做!
  • 顺便说一句,你不需要使用.each()。你应该使用.on().click() 而不是.bind()
  • 另外,修复不正确的 HTML 也是一个好主意(每个 <a> 中都有 </i>,但没有打开标签 <i>)。

标签: javascript jquery


【解决方案1】:

创建一个 css 类,然后单击它在锚标记上添加该类,并将其从已经具有该类的其他锚标记中删除。

.green
{
    color:green
}

像这样:

$('.accordionHead').on('click', function(){
      $('h2 a.green').removeClass("green");
      $(this).find('h2 a').addClass("green");
  });

更新的小提琴:

http://jsfiddle.net/92p3enp3/3/

【讨论】:

    【解决方案2】:

    试一试:

    $('.accordionHead').each( function(){
      $(this).bind('click', function(){
          $(this).find('h2 a:gt(1)').css("color", "green");
      });
    });
    

    【讨论】:

    • 我只需要停留在被点击的绿色区域。
    • 如果您可以在答案中添加一些解释,将会很有帮助
    • :gt 是一个 jQuery 选择器,表示抓取所有大于 (x) 的元素
    【解决方案3】:

    下面会解决问题

    $('.accordionHead').each( function(){
      $(this).bind('click', function(){
          $('.accordionHead').find('h2 a').removeClass('color');
          $(this).find('h2 a').addClass('color');
      });
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      相关资源
      最近更新 更多