$ this.parent()。find .removeClass不会删除类

时间:2014-11-20 16:42:41

标签: php jquery jquery-selectors

我遇到以下问题

如果我在循环中添加一个额外的列,则不会通过jquery脚本删除ccs类。如果我删除它的工作..

<?php foreach ($option['option_value'] as $option_value) { ?>
    <td>
       <a class="option-detail"> <img src="image"></a>
    </td>
<?php } ?>   

我做错了什么?

jquery代码的一部分

$(document).ready(function(){
      $("a.option, a.option-detail").click(function(event){
         $this = $(this);
         $this.parent().find('a.option, a.option-detail').removeClass('option-active');
        $this.addClass('option-active');

3 个答案:

答案 0 :(得分:1)

为什么你在“a.option”上点击事件,然后在删除并添加课程之前再去找父母并再次找到锚点?执行以下操作会不会更容易:

$(document).on('click', 'a.option, a.option-detail', function() {
    $this = $(this);
    $('.option-active').removeClass('option-active');
    $this.addClass('option-active');
}

答案 1 :(得分:1)

使用<a class="option-detail"><img src="image"></a>(之前删除a.

因为这个:

<a class="a.option-detail" <img src="image"></a>您的班级名称为.a.option-detail

并在关闭>

时修复你的htm

答案 2 :(得分:1)

这是因为parent不足以让您进入需要更改的节点所在的顶层。

即。您刚刚前往包含tr的{​​{1}},而不是td

如果没有更多的代码(更多的HTML生成),很难确定。

我最好的猜测是,您确实需要找到table表而不是closest

E.g。

parent

This fiddle give you an example of what I'm suggesting...