Цикл по 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>
|
id-шник у элемента должен быть уникальным в пределах документа.
и getElementById потому всегда возвращает один элемент. используйте другую зацепку для обхода элементов. например назначьте id ихнему родительскому элементу, и обходите го потомков |
<!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>
Не че не происходит... :( |
Цитата:
|
Спасибо. Заработало :)
|
(для примера потомкам)
<!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>
|
а что это за onclick="java: rub('33.63')"
http://javascript.ru/unsorted/why_href_js_is_bad |
x-yuri эм... я не дописал но все равно работало :)
|
| Часовой пояс GMT +3, время: 23:59. |