Javascript.RU

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

Цикл по getElementById
Здравствуйте. Я не очень шарю javascript, но хочу изучить
У меня тут проблема не понимаю как сделать цикл по всем getElementById объектам...Скриптик конвертирует цену между рублем и долларом.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
  <script>
function rub(rub){
	var summ = document.getElementById('cen').innerHTML;
	var valut = document.getElementById('val').innerHTML;
		if (valut != 'руб.'){
			document.getElementById('cen').innerHTML = summ*rub;
			document.getElementById('val').innerHTML = 'руб.';
		}else {
			document.getElementById('cen').innerHTML = summ / rub;
			document.getElementById('val').innerHTML = '$';
		}
}
  </script>
</head>
<div id="cena"><span id="cen">52</span><span id="val">$</span></div>
<div id="cena"><span id="cen">52</span><span id="val">$</span></div>
<div id="cena"><span id="cen">52</span><span id="val">$</span></div>
<div id="cena"><span id="cen">52</span><span id="val">$</span></div>
<input type="button" onclick="java: rub('35.2')" value="GO" />
<body>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 10.04.2009, 13:33
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,234

id-шник у элемента должен быть уникальным в пределах документа.
и getElementById потому всегда возвращает один элемент.
используйте другую зацепку для обхода элементов.
например назначьте id ихнему родительскому элементу, и обходите го потомков
Ответить с цитированием
  #3 (permalink)  
Старый 10.04.2009, 14:50
Аватар для GogElf
Интересующийся
Отправить личное сообщение для GogElf Посмотреть профиль Найти все сообщения от GogElf
 
Регистрация: 10.04.2009
Сообщений: 10

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
<script>
function rub(rub){
	var div = document.getElementById('cena');
	var elems = div.getElementsByTagName('td');
	for (var i=0; i<elems.length; i++){
	var summ = elems[i].getElementsByTagName('span').innerHTML;
	var valut = elems[i].getElementsByTagName('i').innerHTML;
		if (valut == '$'){
			elems[i].getElementsByTagName('span').innerHTML = summ*rub;
			elems[i].getElementsByTagName('i').innerHTML = 'руб.';
		}
		else
		{
			elems[i].getElementsByTagName('span').innerHTML = summ / rub;
			elems[i].getElementsByTagName('i').innerHTML = '$';
		}
	}
}
</script>
</head>
<body>
<table border="1">
<div>
<tr id="cena">
<th scope="row" class="spec">1 месяц</th>
<td class="one"><span>4</span><i>$</i></td>
<td class="one"><span>4</span><i>$</i></td>
<td class="one"><span>4</span><i>$</i></td>
<td class="one"><span>4</span><i>$</i></td>
<td class="one"><span>4</span><i>$</i></td>
</tr>
</div>
</table>
<input type="button" onclick="java: rub('35.2')" value="GO" />
</body>
</html>

Не че не происходит...
Ответить с цитированием
  #4 (permalink)  
Старый 10.04.2009, 14:57
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от GogElf
elems[i].getElementsByTagName('span').innerHTML
getElementsByTagName возвращает коллекцию.
Ответить с цитированием
  #5 (permalink)  
Старый 10.04.2009, 15:17
Аватар для GogElf
Интересующийся
Отправить личное сообщение для GogElf Посмотреть профиль Найти все сообщения от GogElf
 
Регистрация: 10.04.2009
Сообщений: 10

Спасибо. Заработало
Ответить с цитированием
  #6 (permalink)  
Старый 10.04.2009, 16:15
Аватар для GogElf
Интересующийся
Отправить личное сообщение для GogElf Посмотреть профиль Найти все сообщения от GogElf
 
Регистрация: 10.04.2009
Сообщений: 10

(для примера потомкам)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
<script>
function rub(rub){
	var div = document.getElementById('cena');
	var elems = div.getElementsByTagName('td');
	for (var i=0; i<elems.length; i++){
	var summ = elems[i].getElementsByTagName('span')[0].innerHTML;
	var valut = elems[i].getElementsByTagName('span')[1].innerHTML;
		if (valut == '$'){
			elems[i].getElementsByTagName('span')[0].innerHTML = summ*rub;
			elems[i].getElementsByTagName('span')[1].innerHTML = 'руб.';
		}
		else
		{
			elems[i].getElementsByTagName('span')[0].innerHTML = summ / rub;
			elems[i].getElementsByTagName('span')[1].innerHTML = '$';
		}
	}
}
</script>
</head>
<body>
<table border="1">
<tr id="cena">
<th scope="row" class="spec">1 месяц</th>
<td class="one"><span>4</span><span>$</span></td>
<td class="one"><span>4</span><span>$</span></td>
<td class="one"><span>4</span><span>$</span></td>
<td class="one"><span>4</span><span>$</span></td>
<td class="one"><span>4</span><span>$</span></td>
</tr>
</table>
<input type="button" onclick="java: rub('33.63')" value="GO" />
</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 10.04.2009, 18:21
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

а что это за onclick="java: rub('33.63')"
http://javascript.ru/unsorted/why_href_js_is_bad
Ответить с цитированием
  #8 (permalink)  
Старый 10.04.2009, 19:12
Аватар для GogElf
Интересующийся
Отправить личное сообщение для GogElf Посмотреть профиль Найти все сообщения от GogElf
 
Регистрация: 10.04.2009
Сообщений: 10

x-yuri эм... я не дописал но все равно работало
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Подарок" от IE при работе с getElementById Snipe Internet Explorer 1 10.11.2008 18:18
не работает GetElementById в FF nikitos Общие вопросы Javascript 5 16.10.2008 09:44
Объединение в цикл baal1988 Общие вопросы Javascript 7 27.08.2008 09:21
Цикл с двумя переменными? SunYang Общие вопросы Javascript 10 07.08.2008 01:29
глюк с getElementById Antonio Events/DOM/Window 2 28.05.2008 14:25