getElementById и innerText изменяют только один, а не все - PullRequest
0 голосов
/ 15 октября 2011

Я искал вверх и вниз несколько дней, не повезло.Пожалуйста помоги.Этот проект будет использоваться только в IE7, в нем есть текстовое поле, в котором вы вводите свое имя, и он должен заполнить это имя во всех диапазонах.это где я нахожусь, но это только меняет первый промежуток.

Пожалуйста, помогите.Спасибо.

<form>
<input id="i" value="My_Name">

<input type="button" value="Enter" 

onClick="document.getElementById('initials').innerText= i.value;">
</form>


<span id="initials">name</span>
<br />
<span id="initials">name</span>
<br />
<span id="initials">name</span>
<br />
<span id="initials">name</span>

Ответы [ 2 ]

0 голосов
/ 15 октября 2011

Правило состоит в том, что id должно быть другим, если вы используете один и тот же initials id для всех элементов span. Вы можете дать им разные идентификаторы и попробовать вот так:

document.getElementById('initials1').innerText= i.value;
document.getElementById('initials2').innerText= i.value;
document.getElementById('initials3').innerText= i.value;
document.getElementById('initials4').innerText= i.value;

Таким образом, вы можете изменить свой HTML следующим образом:

<span id="initials1">name</span>
<br />
<span id="initials2">name</span>
<br />
<span id="initials3">name</span>
<br />
<span id="initials4">name</span>

А

<form>
  <input id="i" value="My_Name">
  <input type="button" value="Enter" onClick="doIt();">
</form>

JS:

function doIt(){
  document.getElementById('initials1').innerText= i.value;
  document.getElementById('initials2').innerText= i.value;
  document.getElementById('initials3').innerText= i.value;
  document.getElementById('initials4').innerText= i.value;
}

Если вы не хотите использовать идентификаторы, вы можете использовать getElementsByTagName и изменить функцию следующим образом:

function doIt(){
  var spans = document.getElementsByTagName('span');
  for(var i = 0; i < spans.length; i++){
     spans[i].innerText = document.getElementById('i').value;
  }
}
0 голосов
/ 15 октября 2011

Элемент id должен быть уникальным в документе. Вы не можете использовать один и тот же id для нескольких элементов. Некоторые варианты:

  • Присвойте элементам разные идентификаторы и получите их независимо, используя несколько вызовов getElementById
  • Получить элементы по имени тега, используя getElementsByTagName, и перебрать результаты. (Попробуйте обернуть общие элементы span в div и выбрать по имени тега относительно этой оболочки.)
  • Дайте элементам общее имя класса и используйте некоторую реализацию getElementsByClassName для получения результатов
  • Дайте элементам общее значение для атрибута name (который не обязательно должен быть уникальным) и используйте getElementsByName.
...