Выбор подразделения, основанного на том, какое подразделение это использует Jquery - PullRequest
1 голос
/ 13 июня 2011
<div class = ui-dialog-abc ui-dialog-xyz>
<div id = "sheet1abc">
</div>
</div>

<div class = ui-dialog-abc ui-dialog-xyz>
<div id = "sheet1xyz">
</div>
</div>

<div class = ui-dialog-abc ui-dialog-xyz>
<div id ="sheet2foo">
</div>
</div>

<div class = ui-dialog-abc ui-dialog-xyz>
</div>

Могу ли я выбрать div в зависимости от того, какой div он содержит?Я хочу сделать div, содержащий div, чей id содержит sheet1 видимым или скрытым.

Ответы [ 3 ]

5 голосов
/ 13 июня 2011

Если я правильно вас понял, вы хотите выбрать div, который является родительским для div с id, начинающимся с "sheet1".

Если это правильно,Вы можете сделать следующее:

$("div[id^=sheet1]")

, который выберет все элементы div с id, начинающимся с "sheet1".Затем вы можете просмотреть набор элементов с помощью each и получить parent каждого элемента для доступа к родительскому элементу div.

После того, как у вас будет родительский элемент div, вы можете показать / скрытьэто с использованием show или hide.

См. примерную скрипку , в которой я предупреждаю id каждого соответствующего родителя div.

Обновление

Если искомый ребенок div не является прямым потомком предка div, вы можете использовать parent().closest('div'), чтобы взобраться на дерево DOM и найти первого предкаdiv из div с вашим id.

Вопрос просит получить "div, содержащий div ...", поэтому этот метод получит первого предка div.См. эту скрипку , в которой дочерний элемент div содержится в таблице.

1 голос
/ 13 июня 2011
$('div').has('div[id="sheet1abc"]').text();
$('div').has('div[id="sheet1xyz"]').text();
0 голосов
/ 13 июня 2011

Захватите все div, идентификаторы которых содержат 'sheet1', затем возьмите их ближайший, содержащий div:

$('div[id*=sheet1]').map(function() {
    return $(this).parents('div:first')[0] 
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...