Сделал так вот простенько:
function showDetails() { for (var i=1;i<=<?=$id_num?>;i++) { if(document.getElementById("details"+i).style.display=="none") { document.getElementById("details"+i).style.display="inline"; } else { document.getElementById("details"+i).style.display="none"; } } } Где <?=$id_num?> является переменной php, обозначающей последний элемент. Не очень криво?:) |
А Вам не надоело в процессе написания дважды переписывать document.getElementById("details"+i)?
|
Цитата:
Подскажите, как...:help: К тому же в php есть тернарный оператор "?". В JS есть что-то аналогичное? ВРоде, не встречал. К примеру, (a=1 ? b=2 : b=3)... Чтобы убрать if ... else... И еще вопрос. Я использую переменную php для определения общего количества элементов, что не есть хорошо. А как в данном случае из всех ID сделать массив и применить lenght? Элементы в моем случае идут в теге <p ID="details<?=$id_num++?>"></p> |
Как Вы пробовали?
function showDetails() { for (var i=1;i<=<?=$id_num?>;i++) { var elemStyle = document.getElementById("details"+i).style; elemStyle.display = elemStyle.display == "none" ? "inline" : "none"; } } |
ООО
Спасибо!!! Я пробовал var elemStyle = document.getElementById("details"+i); В общем, неправильно пробовал. Буду учиться. Без style. |
Можно было бы так
function showDetails() { for (var i = 1; i <= <?=$id_num?>; i++) { var elem = document.getElementById("details"+i); elem.style.display = elem.style.display == "none" ? "inline" : "none"; } } |
Я, вроде, так пробовал. Может, просто ошибку допустил. Не работало.
А что по поводу второго вопроса? Про то, чтобы убрать из функции переменную php изаменить ее на lenght массива? |
Часовой пояс GMT +3, время: 10:54. |