Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.05.2011, 12:09
Аватар для Viral
Профессор
Отправить личное сообщение для Viral Посмотреть профиль Найти все сообщения от Viral
 
Регистрация: 26.04.2011
Сообщений: 472

Еще вопрос от новичка...
Есть хтмл-код(структуру показать):

<div id="q" onclick="func('w1')">Тык</div>
    <div id="w1">
      <div id="e1">
        <div id="r1"></div>
      </div>
    </div>
    <div id="w2">
      <div id="e2">
        <div id="r2"></div>
      </div>
    </div>
    <div id="w3">
      <div id="e3">
        <div id="r3"></div>
      </div>
    </div>
    <div id="w4">
      <div id="e4">
        <div id="r4"></div>
      </div>
    </div>




Количество дивов определяется количеством записей в базе (выводится все языком GishopML, если кто-то слышал о таком)
id этих дивов тоже выводится из базы в соответствии с номером записи.(сейчас их порядка 150)

Подскажите, пожалуйста, как правильно оформить скрипт, чтобы функция срабатывала на все <div> с id="wN", кроме дива с id=w1

Спасибо за внимание.
Ответить с цитированием
  #2 (permalink)  
Старый 12.05.2011, 12:46
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Viral
как правильно оформить скрипт, чтобы функция срабатывала на все <div> с id="wN", кроме дива с id=w1
Как вариант...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<style type="text/css">
</style>
<script>
function Go() {
	var i=2
	while (document.getElementById('w'+i)) {
		alert(i)
		i++
	}
}
</script>
</head>
<body>
<div id="q" onclick='Go()'>Тык</div>
<div id="w1">
  <div id="e1">
	<div id="r1"></div>
  </div>
</div>
<div id="w2">
  <div id="e2">
	<div id="r2"></div>
  </div>
</div>
<div id="w3">
  <div id="e3">
	<div id="r3"></div>
  </div>
</div>
<div id="w4">
  <div id="e4">
	<div id="r4"></div>
  </div>
</div>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 12.05.2011, 13:08
Аватар для Viral
Профессор
Отправить личное сообщение для Viral Посмотреть профиль Найти все сообщения от Viral
 
Регистрация: 26.04.2011
Сообщений: 472

Спасибо, но это не совсем то...

Если надо такое же действие провернуть с div id="w2", т.е. чтобы на все div с id="wN" (включая первый) кроме него сработала функция, как поступить?

Лучшим, на мой взгляд, было бы представление в javascript функции параметра SQL " like 'w%' ".
Возможно такое реализовать? как?

Последний раз редактировалось Viral, 12.05.2011 в 13:14.
Ответить с цитированием
  #4 (permalink)  
Старый 12.05.2011, 13:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Viral
Если надо такое же действие провернуть с div id="w2", т.е. чтобы на все div с id="wN" (включая первый) кроме него сработала функция, как поступить?
Т.е. тебе нужно исключать только один эелемент?
Тогда так..

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<style type="text/css">
</style>
<script>
function Go(N) {
	var i=1
	while (document.getElementById('w'+i)) {
		if (i==N) {
			i++
			continue
		}
		alert(i)
		i++
	}
}
</script>
</head>
<body>
<div id="q" onclick='Go(3)'>Тык</div>
<div id="w1">
  <div id="e1">
	<div id="r1"></div>
  </div>
</div>
<div id="w2">
  <div id="e2">
	<div id="r2"></div>
  </div>
</div>
<div id="w3">
  <div id="e3">
	<div id="r3"></div>
  </div>
</div>
<div id="w4">
  <div id="e4">
	<div id="r4"></div>
  </div>
</div>
</body>
</html>

Сообщение от Viral
Лучшим, на мой взгляд, было бы представление в javascript функции параметра SQL " like 'w%' ".
В контексте твоей задачи я бы так не делал...
Ответить с цитированием
  #5 (permalink)  
Старый 12.05.2011, 16:11
Аватар для Viral
Профессор
Отправить личное сообщение для Viral Посмотреть профиль Найти все сообщения от Viral
 
Регистрация: 26.04.2011
Сообщений: 472

Спасибо Вам большое за помощь.
У меня еще вопрос по этой же теме.

В случае нарушения нумерации (если какой то из пунктов пропущен, к примеру) на следующем после "пропущенного" и следующих за ним div'ах скрипт перестает работать.

Подскажите, пожалуйста, как поступить в этом случае?

Грубо говоря, в конечном виде, нужна "инверсия", выбрал один пункт - сработали все остальные.

Последний раз редактировалось Viral, 12.05.2011 в 16:29.
Ответить с цитированием
  #6 (permalink)  
Старый 12.05.2011, 16:29
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Viral
как поступить в этом случае?
Тут уже нужно говорить об изменении структуры самой хтмл-разметки...
Ответить с цитированием
  #7 (permalink)  
Старый 12.05.2011, 16:30
Аватар для Viral
Профессор
Отправить личное сообщение для Viral Посмотреть профиль Найти все сообщения от Viral
 
Регистрация: 26.04.2011
Сообщений: 472

По-подробнее можете, пожалуйста, рассказать?

Что именно надо поменять?

Последний раз редактировалось Viral, 12.05.2011 в 16:39.
Ответить с цитированием
  #8 (permalink)  
Старый 12.05.2011, 16:42
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Viral
Что именно надо поменять?
Например засунуть все "структурные" дивы в один материнский... Подумать может тебе и не дивы там нужны... Тогда можно будет пользоваться методом getElementsByTagName...
Т.е. вариантов масса.

Можно определить первый и к следующим двигаться специальным методом...
Ответить с цитированием
  #9 (permalink)  
Старый 12.05.2011, 16:56
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Viral
По-подробнее можете, пожалуйста, рассказать?
Вот один из вариантов...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
<style type="text/css">
</style>
<script>
function Go(N) {
	var i=document.getElementById('container').childNodes[0]
	while (i) {
		if (i.id==('w'+N)) {
			i=i.nextSibling
			continue
		}
		alert(i.id)
		i=i.nextSibling
	}
}
</script>
</head>
<body>
<div id="q" onclick='Go(3)'>Тык</div>
<div id='container'>
	<div id="w1">
	  <div id="e1">
		<div id="r1"></div>
	  </div>
	</div>
	<div id="w3">
	  <div id="e3">
		<div id="r3"></div>
	  </div>
	</div>
	<div id="w4">
	  <div id="e4">
		<div id="r4"></div>
	  </div>
	</div>
</div>
</body>
</html>


Тестил в ИЕ7...

Последний раз редактировалось ksa, 12.05.2011 в 17:02.
Ответить с цитированием
  #10 (permalink)  
Старый 13.05.2011, 09:17
Аватар для Viral
Профессор
Отправить личное сообщение для Viral Посмотреть профиль Найти все сообщения от Viral
 
Регистрация: 26.04.2011
Сообщений: 472

Благодарю! То, что надо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть вопрос от новичка в DOM и JavaScript ipman Events/DOM/Window 3 19.01.2011 10:05
Вопрос новичка... Aleksew Общие вопросы Javascript 1 14.02.2010 12:26
Вопрос новичка по DIV De-Luxis Я не знаю javascript 6 02.06.2009 20:34
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
Еще один вопрос по setTimeout setInterval Хранитель Света Общие вопросы Javascript 5 12.03.2009 22:37