Я пытаюсь перенастроить класс div из диапазона, я пробовал
$(this).closest(".div").find(".list-type-demandes").toggle();
но это не работает.
если я использую:
$(".list-type-demandes").toggle();
это работает, но показывает мне два div, и мне нужно отобразить div из «этого» диапазона
здесь HTML:
<label style = "color: #1c5081">
<span id = "toolbar-open" name = "toolbar_open" class = "toogle-toobar-open" onclick = "toogleListTypeDemande(this)"><b>+</b>
</span> Organisation, support et services
</label>
<div class = "list-type-demandes" style = "padding-left: ; display: none">
<label style = "display: inline">
<input type = "radio" class = "checkbox_type_demande" data-appel-projet = "474" name = "appel_projet[type_demande_list]" value = "54" id = "appel_projet_type_demande_list_54"> Architecture d'entreprise
</label>
</div>
<label style = "color: #1c5081">
<span id = "toolbar-open" name = "toolbar_open" class = "toogle-toobar-open" onclick = "toogleListTypeDemande(this)"><b>+</b></span> Applications
</label>
<div class = "list-type-demandes" style = "padding-left: ; display: none">
<label style = "display: inline">
<input type = "radio" class = "checkbox_type_demande" data-appel-projet = "474" name = "appel_projet[type_demande_list]" value = "52" id = "appel_projet_type_demande_list_52"> Système d'information activités recherche
</label>
</div>
вот скрипт:
function toogleListTypeDemande(element) {
$(this).closest(".div").find(".list-type-demandes").toggle();
}
я имею в виду, что хочу переключить ближайший div из диапазона, а не два div, когда я использую $(".list-type-demandes").toggle();
но если я нажму на диапазон 1 и диапазон 2, конечно, я хотел бы отобразить два div
ваш селектор означает, что вы ищете класс div, а не div - удалите точку
Используйте ID
уникальный и проверьте код ниже,
Вы также можете использовать прямой щелчок
$('.toogle-toobar-open').click(function(){
$(this).closest("label").next(".list-type-demandes").toggle();
});
label{
display:block;
}
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script>
function toogleListTypeDemande(element) {
$(element).closest("label").next(".list-type-demandes").toggle();
}
</script>
<label style = "color: #1c5081">
<span id = "toolbar-open" name = "toolbar_open" class = "toogle-toobar-open" onclick = "toogleListTypeDemande(this)"><b>+</b>Organisation, support et services
</span>
</label>
<div class = "list-type-demandes" style = "padding-left: ; display: none">
<label style = "display: inline">
<input type = "radio" class = "checkbox_type_demande" data-appel-projet = "474" name = "appel_projet[type_demande_list]" value = "54" id = "appel_projet_type_demande_list_54"> Architecture d'entreprise
</label>
</div>
<label style = "color: #1c5081">
<span id = "toolbar-open2" name = "toolbar_open" class = "toogle-toobar-open" onclick = "toogleListTypeDemande(this)"><b>+</b> Applications</span>
</label>
<div class = "list-type-demandes" style = "padding-left: ; display: none">
<label style = "display: inline">
<input type = "radio" class = "checkbox_type_demande" data-appel-projet = "474" name = "appel_projet[type_demande_list]" value = "52" id = "appel_projet_type_demande_list_52"> Système d'information activités recherche
</label>
</div>
Вам нужно немного изменить toogleListTypeDemande(element)
.
Javascript предлагает атрибут nextElementSibling для получения следующего HTML-элемента. К сожалению, нет следующего брата для вашего элемента span. Итак, нам нужно вернуться на один узел назад, чтобы получить его родительский элемент element.parentNode, который является меткой, а оттуда следующим родственным элементом будет div.
function toogleListTypeDemande(element) {
$(element.parentNode.nextElementSibling).toggle();
}
Что вы имеете в виду под
the div from "this" span
?