У меня есть множество кнопок на разных уровнях внутри вложенного аккордеона JQuery. Это работает как телефонная книга, и когда нажимаются кнопки, номера добавляются в инструмент связи.
Я надеялся поставить кнопку в верхней части каждого подуровня в аккордеоне, который добавит все остальные кнопки на этом подуровне в поле "Кому:". Я полагаю, что есть элегантный способ сделать то, что я в противном случае мог бы выполнить грубой силой в уродливой манере. Благодарю!
<div id="accordion-nest">
<h3>First group</h3>
<div>
<button id="allGroupOne">Add all of Group One</button> <-----Button I want
<button id="Guy1">Biff 555-1111</button>
<button id="Guy2">Tagg 555-1112</button>
<button id="Guy3">Mitt 555-1113</button>
......
</div>
<h3>Second group</h3>
<div>
<button id="Guy13">Jeb 555-2222</button>
</div>
<h3>Third group</h3>
<div>
<button id="Guy33">Uncle Jesse 555-99999</button>
</div>
</div>
JS/JQuery
$('button').click(function () {
var last8 = (this.textContent).slice(-8);
if (pageNames == '') {
pageNames = (this.textContent).slice(0, -8);
} else {
pageNames = pageNames + " " + (this.textContent).slice(0, -8);
}
if ($('#pageTo').val() != '') {
$('#pageTo').val($('#pageTo').val()+', '+ areaCode + last8);
} else {
$('#pageTo').val(areaCode+last8);
}
}
Я бы добавил тот же класс ко всем кнопкам "Добавить все":
<button class="allGroup">Add all of Group One</button>
И также добавит тот же класс ко всем другим кнопкам телефона:
<button class="phone" id="Guy1">Biff 555-1111</button>
Кроме того, добавьте класс в div
который содержит каждую группу, например:
<div class="groupContainer">
Тогда это будет jquery при нажатии кнопки "Добавить все":
$(".allGroupOne").click(function(){
var $parent = $(this).closest('.groupContainer'); //The parent div
$parent.find(".phone").trigger('click'); //This simulates each button click
});
Это!
ура