单击它时从行中删除按钮

时间:2015-05-05 18:57:52

标签: javascript jquery

当用户点击它时,一行获得一个“活动”类(“活动”类添加了一个单独的代码块,并且工作正常)。

现在我想检查那个“活动”类,如果它在那里它将删除该行中单元格内的按钮。该按钮有一个“添加选择”类。

这是我写的剧本,在我看来应该有用......但是它不会这样做。

$(document).ready(function() {
    $('tr').on('click', function(){
        if ( $(this).hasClass('.active') ) {
                $(this).parents('tr').next().remove('.add-selection');
        }
    });
});

HTML:

<tr role="row" class="even active">
   <td class="sorting_1">Cell 1 <button type="button" class="btn add-selection pull-right"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span></button></td>
 </tr>

5 个答案:

答案 0 :(得分:1)

您应该可以通过简单的CSS添加来处理这个问题:

.active button {display: none;}

这是假设在激活时,实际上可以简单地隐藏按钮,而不是完全删除它。

此外,如果您需要维护按钮占用的空间,您可以采用这种方法:

.active button {visibility: hidden;}

编辑:如果你真的想从DOM中删除按钮,那么就可以了:

$(document).ready(function() {
    $('tr').on('click', function(){
        if ($(this).hasClass('.active')) {
            $(this).find('.add-selection').remove();
        }
    });
});

答案 1 :(得分:0)

你可以告诉我们HTML吗? $(this).parents(tr)在$(this)已经是tr时没有意义?

我假设你想要

$(document).ready(function() {
    $('tr').on('click', function(){
        if ( $(this).hasClass('active') ) {
                $(this).find('.add-selection').remove();
        }
    });
});

答案 2 :(得分:0)

没有必要去找父母,然后接下来,你已经在被点击的tr中,所以你应该可以这样做:

$('tr').on('click', function(){
        if ( $(this).hasClass('.active') ) {
                $(this + '.add-selection').remove();
        }
    });

答案 3 :(得分:0)

如果您要删除add-selection班级的按钮,该班级位于<tr>active下,您可以执行以下操作:

$("tr.active > td > .add-selection").remove();

因此,您可以将代码简化为:

&#13;
&#13;
    $(document).ready(function() {
        $('tr').on('click', function(){
            $("tr.active > td > .add-selection").remove();
        });
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<table border="1">
  <tr role="row" class="even active">
      <td class="sorting_1">Cell 1 
        <button type="button" class="btn add-selection pull-right">test
          <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
        </button>
    </td>
  </tr>
</table>
&#13;
&#13;
&#13;

答案 4 :(得分:0)

试试这个:

<script>
            $(document).ready(function()
            {
                    $('tr').on('click', function()
                    {
                            if($(this).hasClass('active'))
                            {
                                    $(this).find(".add-selection").remove();
                            }
                    });
            });
    </script>

hasClass方法不需要“。”代表班级。这是假的..