2015-12-03 4 views
0

У меня есть таблица, которая выглядит следующим образом:Найти родственный Td элемент с JQuery

<table> 
    <tr> 
    <td class='class1' id='id1'></td> 
    <td class='class2' id='id2'></td> 
    <td class='class3' id='id3'></td> 
    <td class='class4' id='id4'><button id='editButton'></button></td> 
    </tr> 
    <tr> 
    <td class='class1' id='id1'></td> 
    <td class='class2' id='id2'></td> 
    <td class='class3' id='id3'></td> 
    <td class='class4' id='id4'><button id='editButton'></button></td> 
    </tr> 
</table> 

Приведенный ниже код показывает мне id4:

$("#editButton").on("click", function(){ 
    alert($(this).parent().attr("id")); 
}); 

Теперь мне нужно, чтобы достичь id3, который является самым близким один. Функции .next('class3') и .closest('class3') не помогают мне, или я использую их неправильно. Пожалуйста, помогите мне

+0

Так что '# editButton' ??? Я излагаю это из вашего опубликованного результата, но ... –

+0

'# editButton' является кнопкой внутри класса4 – divHelper11

+3

Так просто' $ (this) .closest ('td'). Prev(). Attr ("id") 'но FYI, это недопустимая разметка HTML относительно дублированных идентификаторов ... Нажатие на второй '# editButton' не будет запускать какое-либо событие здесь –

ответ

3

первый: идентификатор должен быть уникальным

так что ваш код должен нравится

<table> 
    <tr> 
    <td class='class1' id='id1'></td> 
    <td class='class2' id='id2'></td> 
    <td class='class3' id='id3'></td> 
    <td class='class4' id='id4'><button class="editButton"></button></td> 
    </tr> 
    <tr> 
    <td class='class1' id='id5'></td> 
    <td class='class2' id='id6'></td> 
    <td class='class3' id='id7'></td> 
    <td class='class4' id='id8'><button class="editButton"></button></td> 
    </tr> 
</table> 

и в JS

$(".editButton").on("click", function(){ 
    alert($(this).closest('tr').find('td:nth-child(3)').attr("id")); 
}); 
+0

Отлично работает, спасибо. Почему это должно быть так сложно ehh – divHelper11

+0

@ divHelper11 его не сложно просто .closest() перейти к parent tr и найти третий td thats it –