У меня есть рабочий JavaScript, который просто очень не элегантно и громоздким:Как переписать Javascript Условный оператор выбора классов вместо идентификаторов в HTML
//check if certain div (with higher main id) is clicked and then run a script
if (item.content.attr("id") == 'gridgallery1') {
$('#grid1').grid(); // GALLERY initialisaion
}
if (item.content.attr("id") == 'gridgallery2') {
$('#grid2').grid(); // GALLERY initialisaion
}
if (item.content.attr("id") == 'gridgallery3') {
$('#grid3').grid(); // GALLERY initialisaion
}
Сопровождающие рабочий HTML-код:
<div id="gridgallery1">
<div id="grid1" data-directory="IMAGES/FIRST GALLERY"></div>
</div>
<div id="gridgallery2">
<div id="grid2" data-directory="IMAGES/SECOND GALLERY"></div>
</div>
<div id="gridgallery3">
<div id="grid3" data-directory="IMAGES/THIRDGALLERY"></div>
</div>
Вопрос 1. Я хочу переписать выше If-заявление в одном коротком элегантном заявлении If-, верно для всех случаев, охватывающих ничего от 'grid1'
и 'gridgallery1'
до 'grid99'
и 'gridgallery99'
) Как переписать вышеприведенное If-Statement?
Вопрос 2. Возможно, лучше было бы иметь multple классов вместо идентификаторов. Я думал, что я мог бы изменить «идентификатор» в «класс» sothat мне не нужно, чтобы изменить HTML-код, в первую очередь для каждой добавленной галереи контейнер, но если я изменю:
if (item.content.attr("id")
в if (item.content.attr("class")
тогда он больше не работает! Я действительно хочу просто оператор javascript If, который находит все эти экземпляры и (все divs с этими классами) и запускает скрипт.
<div class="gridgallery">
<div class="grid" data-directory="IMAGES/FIRST GALLERY"></div>
</div>
<div class="gridgallery">
<div class="grid" data-directory="IMAGES/SECOND GALLERY"></div>
</div>
<div class="gridgallery">
<div class="grid" data-directory="IMAGES/THIRDGALLERY"></div>
</div>
смотрите обновленный вопрос 2 мата. Я могу заменить весь оператор if одной строкой? (это не работает). Я думал, что решение появилось в форме «if-statement». Благодаря! – Sam
нет, если необходимо! эта строка просто вызывает 'grid()' на #grid + все, что приходит после gridgallery. Посмотрите, как работает '.split()', чтобы лучше понять. –