#javascript #html #jquery #css
#javascript #HTML #jquery #css
Вопрос:
У меня есть следующий HTML:
<div id="myContainer">
<div id="containerHeader">
...
</div>
<div id="containerBody">
<input class="form-control mr-sm-2" id="titleInput"/>
</div>
</div>
Я скрываю его, используя $("#myContainer").hide()
со страницы. На его месте, на той же странице, я показываю другой компонент, который также использует тот же HTML (MyContainer) с теми же идентификаторами, и он виден на нем.
Я хочу выбрать дочерний элемент (ввод) элемента div (MyContainer), который не скрыт.
Я пробовал использовать $("#titleInput:visible").val()
, но он по-прежнему выдает мне значение (пустое) скрытого компонента. Я не мог понять, как я могу получить значение дочернего компонента, для родительского элемента которого не было установлено значение hidden . Любое предложение будет оценено. Спасибо
Комментарии:
1. Почему бы вам не использовать ванильный javascript вместо jquery.
2. вы никогда не должны использовать один и тот же идентификатор более одного раза. Это недопустимый HTML и всегда создает проблемы.
3. по сути, это компонент представления в asp.net ядро mvc. этот компонент представления используется повторно. Один скрыт, а другой вызывается на его месте.
4. Вы правы @caramba, даже если это компонент представления, идентификатор не должен быть одинаковым (особенно когда один компонент скрыт, а другой виден). Переключение на имя класса решило проблему.
Ответ №1:
Я хочу выбрать дочерний элемент (ввод) элемента div (MyContainer), который не скрыт.
$("#myContainer:visible input")
выберет любой ввод внутри #myContainer
, при условии, что #myContainer
он виден на странице. Смотрите: https://api.jquery.com/visible-selector /
Комментарии:
1. Спасибо за помощь. Это правильно, но в моем случае это была проблема с двумя компонентами, имеющими одинаковый идентификатор (один скрытый и один видимый), как указано в комментарии @caramba
2. @GMDev Предположим, что вы были бы кем-то, кто достигает этой темы через поиск Google, а заголовок вопроса гласит: «jQuery выбирает элемент, родительский элемент которого не скрыт с помощью Hide ()» … Я бы сказал, что если он отвечает на этот вопрос, это имеет значение.