Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   elements[i] помогите (https://javascript.ru/forum/misc/29515-elements%5Bi%5D-pomogite.html)

adik7960 01.07.2012 13:05

elements[i] помогите
 
У меня есть хтмл тег с id="wall_time" таких тегов 10,
а при использовании
var tag = document.getElementById('wall_time');
          tag.innerHTML="Сейчас";

применяется это только к 1 тегу а нужно ко всем 10 как это сделать?

Aetae 01.07.2012 13:12

Id - уникальный идентификатор.

adik7960 01.07.2012 13:16

это значит что он должен быть всегда один?

lord2kim 01.07.2012 13:26

Цитата:

Сообщение от adik7960 (Сообщение 185586)
это значит что он должен быть всегда один?

да...на странице может быть только один элемент с уникальным идентификатором...для ваших целей используйте одинаковые атрибуты name
document.getElementsByName("name")[i].innerHTML

adik7960 01.07.2012 13:45

Спасибо, а как из array незная названия выбрать следующий параметр?

lord2kim 01.07.2012 13:46

Цитата:

Сообщение от adik7960 (Сообщение 185598)
Спасибо, а как из array незная названия выбрать следующий параметр?

var array = ["a", "b", "c"];
for (i=0; i < array.length; i++) {
     alert(array[i]);
}

adik7960 01.07.2012 13:50

array состоит из
= {
  сейчас: "только что",
  первое: "1 секунду назад",
  второе: "2 секунды назад",
  третье: "3 секунды назад",
  четвертое: "4 секунды назад",
  пятое: "5 секунд назад",
  шестое: "6 секунд назад",
  седьмое: "7 секунд назад",
  предпоследнее: "8 секунд назад",
  последнее: "9 секунд назад"
}

lord2kim 01.07.2012 13:53

Цитата:

Сообщение от adik7960 (Сообщение 185603)
array состоит из
= {
  сейчас: "только что",
  первое: "1 секунду назад",
  второе: "2 секунды назад",
  третье: "3 секунды назад",
  четвертое: "4 секунды назад",
  пятое: "5 секунд назад",
  шестое: "6 секунд назад",
  седьмое: "7 секунд назад",
  предпоследнее: "8 секунд назад",
  последнее: "9 секунд назад"
}

это уже не массив, а объект (ассоциативный массив)...и часть до двоеточия, если это не число, тоже должна быть в ковычках...
var obj = {
  "сейчас": "только что",
  "первое": "1 секунду назад",
  "второе": "2 секунды назад",
  "третье": "3 секунды назад",
  "четвертое": "4 секунды назад",
  "пятое": "5 секунд назад",
  "шестое": "6 секунд назад",
  "седьмое": "7 секунд назад",
  "предпоследнее": "8 секунд назад",
  "последнее": "9 секунд назад"
};
for (i in obj) {
    alert(i+" => "+obj[i]);
}

Deff 01.07.2012 13:56

adik7960,
Присвойте элементу атрибут data и вклейте значения туда
пример
<span name='div_1' data="'сейчас':'только что'"></span>
<span name='div_2' data="'первое':'1 секунду назад'"></span>
<span name='div_3' data="'второе':'2 секунды назад'"></span>

adik7960 01.07.2012 14:05

еще мне нужно узнать значение тега time с помощью кода document.getElementsByName("time")[i].getAttribute('time') но он выдает undefined почему?

lord2kim 01.07.2012 14:08

Цитата:

Сообщение от adik7960 (Сообщение 185609)
еще мне нужно узнать значение тега time с помощью кода document.getElementsByName("time")[i].getAttribute('time') но он выдает undefined почему?

document.getElementsByTagName("time")[i].getAttribute('time')

adik7960 01.07.2012 14:09

ок

oneguy 01.07.2012 19:55

Цитата:

Сообщение от adik7960
У меня есть хтмл тег с id="wall_time" таких тегов 10,
а при использовании
var tag = document.getElementById('wall_time');
tag.innerHTML="Сейчас";

применяется это только к 1 тегу а нужно ко всем 10 как это сделать?

Для этой цели можно использовать атрибут class и метод DOM getElementsByClassName, правда это не работает в IE<9.
Цитата:

Сообщение от lord2kim
и часть до двоеточия, если это не число, тоже должна быть в ковычках...

Кавычки обязательны только в JSON. В Джаваскрипте часть до двоеточия может быть также идентификатором, то есть там не было ошибки.

oneguy 01.07.2012 19:59

Цитата:

Сообщение от adik7960
tag.innerHTML="Сейчас";

Для записи текста в элемент лучше использовать метод textContent:
tag.textContent="Сейчас";

9xakep 01.07.2012 23:13

<div name='s_div'></div>
<div name='s_div'></div>
<div name='s_div'></div>
<div name='not_s_div'></div>
<div name='s_div'></div>
<script>
var specialDivs = document.getElementsByName('s_div')
var l = specialDivs.length;
for (i = 0; i < l; i++) specialDivs[i].innerHTML = 'special'
document.getElementsByName('not_s_div')[0].innerHTML = 'not_special'
</script>


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