Пожалуйста, со мной, как только я начинаю с jQuery.Таргетирование div внутри идентификатора переменной, найденного с использованием класса
То, что я в основном имеет дело с необходимостью добавлять различные идентификаторы и HREF, а также данные, родительский атрибут несколько элементов внутри DIV «MyId» - из которых я хотел бы вернуть идентификатор DIV с данным классом: ".template-none .section-accordion .accordion"
.
Захват здесь в том, что система, которую я использую, является перетаскиванием, поэтому эти элементы будут варьироваться в зависимости от того, сколько пользователей решает добавить. Идентификатор для каждого элемента создается после размещения, но класс остается постоянным.
Теперь эти являются рядными, но при проверке по всей видимости, имеют index
из -1
, что означает, что они, вероятно, не рассматриваются как перечисленные элементы. Я рассматриваю использование .sibling
, но боролся с реализацией, поскольку я не знал бы идентификатор до его создания.
У меня он работает в настоящее время, , но, jQuery, который у меня ниже, принимает идентификатор и индекс только первого элемента и не укладывает каждый экземпляр отдельно. Я знаю, что это, наверное, что-то очень простое, что я пропустил.
Итак, в заключение, я хотел бы достичь:
- Таргетинг все элементы с классом «шаблон-ни .section-аккордеона .accordion», и возвращая идентификатор.
- Используя этот теперь идентификатор переменной ID, я хотел бы настроить таргетинг на дочерние элементы .accordion, .accordion-toggle и
.accordion-body
, чтобы добавить идентификаторы и элементы. - Убедитесь, что каждый экземпляр
"template-none .section-accordion .accordion"
оформлен в соответствии с его родительским или отдельным элементом и применяет его ко всем экземплярам"template-none .section-accordion .accordion"
, а не для каждого идентификатора.
Я надеюсь, что имеет смысл и действительно ценю ваш вклад
Вот что я до сих пор:
jQuery(window).load(function() {
// sort accordions and add id's based on parents
var index = jQuery(".template-none section.section-accordion").index(this);
var myId = jQuery(".template-none .section-accordion").prop("id");
jQuery(".template-none .section-accordion .accordion").attr("id", myId + index)
jQuery(".template-none .section-accordion .accordion-toggle").attr("data-parent", myId + index)
jQuery(".template-none .section-accordion .accordion-body").attr("id", myId + index + 'body')
jQuery(".template-none .section-accordion .accordion-toggle").attr("href", '#' + myId + index + 'body')
});
У вас есть jsfiddle, чтобы показать вашу разметку html? при чтении «динамических» идентификаторов я сначала думаю о делегировании событий. когда div не существует при загрузке страницы, прямой селектор в js не будет работать, поскольку он привязывается к загрузке страницы. но если вы завернете его в div и выберите оболочку, это сработает. подробнее об этом здесь: http://learn.jquery.com/events/event-delegation/ – errand
Интересное спасибо Я посмотрю и отчитаюсь. Я могу опубликовать разметку на скрипке. http://jsfiddle.net/w1bg5gwq/ Это результат, который дает мой текущий код jQuery. Оба разных раздела ID'd, но js одинаковы для обоих, на основе первого. Там может быть еще 10 созданных, которые будут нуждаться в одинаковом лечении динамически. P.S отметить, что возвращаемый индекс равен -1. – user4329628
Ваш пример и JSFiddle неполны (например, нет '.template-none', а' index (this) 'не имеет никакого смысла, поскольку' this' является объектом 'window' там). Предоставьте остальные HTML и jQuery. –