Должен поймать элементы интерьера с родителями

0

Мой html:

<dl class="last">
    <dt><label>Medidas</label></dt>
    <dd class="last">
        <div class="input-box">
            <input type="text" value="" name="options[22]" class="input-text  product-custom-option" id="options_22_text" onchange="opConfig.reloadPrice()">
        </div>
    </dd>
</dl>

У меня есть id options_22_text в качестве ссылки, мне нужно добавить класс на dl.

Кто-нибудь может мне помочь?

Я хочу, чтобы результат состоял в следующем:

<dl class="last myClass">
    <dt><label>Medidas</label></dt>
    <dd class="last">
        <div class="input-box">
            <input type="text" value="" name="options[22]" class="input-text  product-custom-option" id="options_22_text" onchange="opConfig.reloadPrice()">
        </div>
    </dd>
</dl>
Теги:
parents

3 ответа

1
Лучший ответ

Вы можете использовать .closest():

Для каждого элемента в наборе получите первый элемент, который соответствует селектору, путем тестирования самого элемента и прохождения через своих предков в дереве DOM.

$('#options_22_text').closest('dl').addClass('myClass');
0

Используйте ближайший(), чтобы перейти к тегу предка dl

Демо-версия

$('#options_22_text').closest('dl').addClass('myClass');
0

должно сработать:

$('#options_22_text').parents('dl.last').addClass('myClass');

Если выше не работает, удалите dl и сохраните только .last (имя класса).

Примите во внимание, если это вложенное, что означает, что будет больше last классов, все они будут найдены. в этом случае вы можете сделать:

$('#options_22_text').closest('dl').addClass('myClass');

// or if you want something a bit faster / more specific 

$('#options_22_text').parent().parent().parent().addClass('myClass');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню