【问题标题】:How to get the id of the div which is before the table using jquery如何使用jquery获取表之前的div的id
【发布时间】:2013-07-25 08:52:50
【问题描述】:

我有一个div,它像以前一样包含table

  <div id='divid'>
     <table>
       <tbody>
          <tr id="clicktr">
             <td> Some content</td>             
          <tr>
      </tbody>
      </table>
  </div>

javascript代码:

  $("#clicktr").live('click',function(e){
       console.log($(this).parent().parent().attr('id'));
  });

在行单击时,我想获取 div 的 id,我怎样才能得到它。 但我无法获得 div 的 id

【问题讨论】:

  • 仍在使用.live,在1.9v中贬值并移除。
  • 查看topic。你的问题听起来很相似。

标签: javascript jquery


【解决方案1】:

你可以试试这个

.live() 在 v1.7 中被贬值,在 v1.9 中被删除。所以使用.on()

$("#clicktr").on('click',function(){
       console.log($(this).parent().closest('div').attr("id"));
});

检查这个JSFiddle

【讨论】:

    【解决方案2】:

    看看这个...

    jsFiddle:http://jsfiddle.net/K3Xy6/1/

    $('table tr td').click(function(e){
        var divId = $(this).closest('div').attr('id');
        alert(divId);
     });
    

    【讨论】:

      【解决方案3】:

      您想使用 .closest()。这将遍历 DOM 树以找到 div 的第一个实例。

      您还应该使用 .on(),因为 .live() 方法已被弃用。

      $('table').on('click', '#clicktr', function(){
          var ID = $(this).closest('div').attr('id');
      }); 
      

      另一方面,如果有多个表和 div,您不想为 tr 使用相同的 ID,而是使用一个类。

      【讨论】:

      • 也许用$("table").on("click", "tr", ...) 代替.live()
      • 如果我有更多的 div,我怎样才能找到确切的 div。我可以给任何属性,如名称
      猜你喜欢
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      • 2014-07-03
      • 2020-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多