Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   GetElementById - пометить несколько элементов (https://javascript.ru/forum/dom-window/22348-getelementbyid-pometit-neskolko-ehlementov.html)

Эдди 29.10.2011 12:43

Сделал так вот простенько:
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, обозначающей последний элемент.
Не очень криво?:)

B@rmaley.e><e 29.10.2011 13:57

А Вам не надоело в процессе написания дважды переписывать document.getElementById("details"+i)?

Эдди 29.10.2011 14:18

Цитата:

Сообщение от B@rmaley.e><e (Сообщение 133411)
А Вам не надоело в процессе написания дважды переписывать document.getElementById("details"+i)?

Ну так я же не спец по js. Попробовал присвоить переменной, не вышло:cray: .
Подскажите, как...:help:

К тому же в php есть тернарный оператор "?". В JS есть что-то аналогичное? ВРоде, не встречал.
К примеру, (a=1 ? b=2 : b=3)... Чтобы убрать if ... else...

И еще вопрос. Я использую переменную php для определения общего количества элементов, что не есть хорошо.

А как в данном случае из всех ID сделать массив и применить lenght?
Элементы в моем случае идут в теге <p ID="details<?=$id_num++?>"></p>

B@rmaley.e><e 29.10.2011 20:14

Как Вы пробовали?
function showDetails() {
	for (var i=1;i<=<?=$id_num?>;i++) {
		var elemStyle = document.getElementById("details"+i).style;
		elemStyle.display = elemStyle.display == "none" ? "inline" : "none";
	}
}

Эдди 29.10.2011 20:35

ООО

Спасибо!!!

Я пробовал
var elemStyle = document.getElementById("details"+i);
В общем, неправильно пробовал. Буду учиться.

Без style.

B@rmaley.e><e 29.10.2011 20:41

Можно было бы так
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";
	}
}

Эдди 29.10.2011 20:43

Я, вроде, так пробовал. Может, просто ошибку допустил. Не работало.

А что по поводу второго вопроса?
Про то, чтобы убрать из функции переменную php изаменить ее на lenght массива?


Часовой пояс GMT +3, время: 10:54.