2013-07-25 3 views
0

Я имею div и содержит table как раньшеКак получить идентификатор DIV, который перед таблицей с помощью JQuery

<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, как я могу это получить. Но я не могу идентификатор div

+2

Тем не менее с использованием '.live', изношено и удалены в версии 1.9 против – Praveen

+0

Проверьте это [тема] (http://stackoverflow.com/questions/7089229/how-to-select-first-parent-div-using-jquery). Ваш вопрос звучит очень похоже. – Damian0o

ответ

4

Вы хотите использовать .closest(). Это приведет к дереву DOM, чтобы найти первый экземпляр div.

Вы также должны использовать .На() как метод .live() осуждается.

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

На другой ноте, если есть несколько таблиц и дивы, вы не хотите использовать один и тот же идентификатор для тр-х, но вместо этого класса.

+0

Возможно использовать '$ (" table "). On (" click "," tr ", ...)' в качестве замены для .live() '? – CodingIntrigue

+0

если у меня больше div, как я могу найти точный div. могу я дать любой атрибут, как имя – Jonathan

0

Вы можете попробовать это

.live() амортизируется в v1.7 и удаляется в v1.9. Так что используйте .on()

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

Проверить это JSFiddle

Смежные вопросы