getElementById和innerText只改变其中之一,而不是全部

发布于 2024-12-09 23:30:54 字数 541 浏览 0 评论 0原文

我上下找了好几天了,没有成功。请帮忙。该项目仅在 IE7 中使用,它有一个文本框,您可以在其中输入名称,然后 onclick 应该将该名称填充到所有范围中。这就是我所在的位置,但它只改变了第一个跨度。

请帮忙。谢谢。

<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>

I have searched up and down for days, no luck. Please help. This projec will only be used in IE7, it has a text box that you enter your name, and onclick should populate that name into all the spans. this is where I am at, but it only changes the first span.

Please Help. Thank you.

<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>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧伤还要旧人安 2024-12-16 23:30:54

元素的 id 在文档中应该是唯一的。您不能对多个元素使用相同的id。一些选项:

  • 为元素提供不同的 ID,并使用多次调用 getElementById 独立检索它们
  • 使用 getElementsByTagName 按标签名称检索元素并循环结果。 (考虑将常见的 span 元素包装在 div 中,并按相对于该包装器的标签名称进行选择。)
  • 为元素指定一个公共类名称并使用 的某些实现getElementsByClassName 检索结果
  • 为元素的 name 属性指定一个通用值(不需要是唯一的)并使用 getElementsByName

An element's id should be unique in the document. You cannot use the same id for multiple elements. Some options:

  • Give the elements different IDs and retrieve them independently using multiple invocations of getElementById
  • Retrieve the elements by tag name using getElementsByTagName and loop over the results. (Consider wrapping the common span elements in a div and selecting by tag name relative to that wrapper.)
  • Give the elements a common class name and use some implementation of getElementsByClassName to retrieve the results
  • Give the elements a common value for the name attribute (which does not need to be unique) and use getElementsByName.
微凉徒眸意 2024-12-16 23:30:54

规则是,如果您对所有 span 元素使用相同的 initials id,则 id 应该不同。你可以给它们不同的 id 并尝试像这样:

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;
}

如果你不想使用 ids,你可以使用 getElementsByTagName 并像这样更改函数:

function doIt(){
  var spans = document.getElementsByTagName('span');
  for(var i = 0; i < spans.length; i++){
     spans[i].innerText = document.getElementById('i').value;
  }
}

The rule is that id should be different where you are using same initials id for all span elements. You can give them different ids and try like this:

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

So you can modify your html like this:

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

And

<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;
}

If you don't want to use ids, you can use getElementsByTagName and change function like this:

function doIt(){
  var spans = document.getElementsByTagName('span');
  for(var i = 0; i < spans.length; i++){
     spans[i].innerText = document.getElementById('i').value;
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文