如何使用jquery清空最近的表?

时间:2014-03-21 06:23:01

标签: javascript jquery

这是我的代码。当我点击click1时,我需要清空下一个div中的表。是否可以通过使用jquery使用最近的兄弟来清空该表。

我正在使用

obj = $(this);
obj.siblings('table').empty();


 <div>
    <div class="dropdown busBook">
              <a class="triggerBook listItemBook" data-toggle="dropdown" href="javascript:void(0)">Click here</a>
              <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
                <li><a class="emptytable"   href="javascript:void(0)" >click1</a></li>
                <li><a class="emptytable" id="Tele"  href="javascript:void(0)">click2</a></li>
                <li><a class="emptytable" "  href="javascript:void(0)">click3</a></li>
              </ul>

              <form>
              <input type="hidden" value="<%= user.id %>" i name="user_id" title="Consulting"  />
              </form>
    </div>
</div>

<div class="row hide">

          <div class="col-md-12"> 

            <div class="bookhere">
              <div id="table-wrapper"><div id="table-scroll">  
              <a class="next pull-right" id='next_id' href="#">next</a>
              <input type="hidden" value="<%= user.id %>" name="user_id" />
              <div class="clearfix"></div>
              <input type="hidden" value="<%= Date.today + 7.days %>"  name="next" />
              <table class="table table-bordered table-condensed" id='table_id'>
                  <tr>
                    <% (Date.today..Date.today + 8.days).first(7).each do |display| %>
                      <th><%= display.strftime("%a") %>(<%= display.strftime("%d/%m") %>)</th>
                    <% end %>
                  </tr>
                 <tr><td>Date here</td></tr>
              </table>
         </div>
    </div>

5 个答案:

答案 0 :(得分:1)

根据您的HTML标记,您可以使用:

$('a.emptytable').closest('div.dropdown').parent().next().find('table').empty();

答案 1 :(得分:0)

尝试这个..

$(".emptytable" ).click(function() {
      $(.dropdown).parent().next().find('table').empty();
    });

答案 2 :(得分:0)

试试这会对你有帮助。

     $(function() {
       $('#myDiv1').next('div').children().html('');    
  });

上述功能的HTML是

<div id="myDiv1">
  <table>
     <tr>
       <td>1</td><td>Sample Data</td>
            </tr>   
            <tr>
                <td>2</td><td>Sample Data</td>
            </tr>
            <tr>
                <td>3</td><td>Sample Data</td>
            </tr>
            <tr>
                <td>4</td><td>Sample Data</td>
            </tr>   
        </table>
    </div>

    <div id="myDiv2">
        <table>
            <tr>
                <td>1</td><td>Sample Data</td>
            </tr>   
            <tr>
                <td>2</td><td>Sample Data</td>
            </tr>
            <tr>
                <td>3</td><td>Sample Data</td>
            </tr>
            <tr>
                <td>4</td><td>Sample Data</td>
            </tr>   
        </table>
    </div>

答案 3 :(得分:0)

$('a').closest('.div_class_name').siblings('table').empty();

试试这样。

答案 4 :(得分:0)

@Felix提供了一个非常好的解决方案。但是,我建议你不要在任何地方使用这种方法。它可能会给你意想不到的结果。更好的方法是设置一些数据属性,而不是使用它们来删除关联的表。通过这种方式,您可以完全控制哪些表被清空。

<强> HTML

<a class="emptytable" id="Tele" data-table="#table-1">Empty table 1</a>
<a class="emptytable" id="Tele" data-table="#table-2">Empty table 2</a>
...

<table id="table-1">...</table>
<table id="table-2">...</table>
...

<强>的Javascript

$(function(){
    $('.emptytable').click(function(){
        $($(this).data('table')).empty();
    });
})