2017-01-20 5 views
1

Извините, если это дубликат. Возможно, это так, но я искал этот конкретный вопрос и не смог его найти.JQuery: выберите элемент, содержащий элемент с определенным идентификатором

Скажем, у меня есть HTML так:

<tr> 
    <td> 
    <input id="hello"> 
    </td> 
    <td> 
    Hello 
    </td> 
</tr> 

Использование JQuery или Javascript, я хочу, чтобы выбрать <tr>, содержащий вход с id="hello".

Вот моя попытка до сих пор:

var id = "hello"; 
var tr = $("tr:has('#" + id + "')"); 

Однако это ни поиски входов конкретно, ни, кажется, работает. Если вы можете пролить свет на это, я буду очень благодарен.

+0

может быть только один идентификатор –

+0

Можете ли вы объяснить, что вы имеете в виду под этим? –

+4

'$ ('# hello'). Ближайший ('tr')' – haxxxton

ответ

2

Jasper, as haxxxton, упомянутый в комментариях, метод jQuery - самый быстрый и простой способ добиться этого.

$('#hello').closest('tr'); 
$('input[id="hello"]').closest('tr'); // more efficient method than escaping dots if say, your id attribute had periods. 
1

Вы можете попытаться получить элемент по id, а затем closest()parent этого элемента. Это представляется предпочтительным способом в документации. Имейте в виду, что может быть только один id на страницу.

Вот пример и link to the documentation:

var yourElement = $("#hello").closest("tr"); 

При просмотре через документации вы найдете несколько способов достижения того же результата. Надеюсь, поможет.

+0

Спасибо всем за ваши ответы! Я отметил это как ответ, хотя все было хорошо, потому что это было первое. –

1

Посмотрите на closest() метод JQuery в here.

Он перемещается по дереву DOM (начиная с текущего элемента), пока не попадет на элемент, который соответствует данному селектору.

Пример для случая:

$("#hello").closest("tr") 
2

Это может быть сделано с помощью метода: parents()

var tr = $('#hello').parents('tr');