我上下搜索了几天,没有运气。请帮忙。此项目只会在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>
答案 0 :(得分:0)
元素的id
在文档中应该是唯一的。您不能对多个元素使用相同的id
。一些选择:
getElementById
getElementsByTagName
按标记名称检索元素并循环结果。 (考虑将常见的span
元素包装在div
中,然后根据该包装选择标记名称。)getElementsByClassName
的某些实现来检索结果name
属性的公共值(不需要是唯一的)并使用getElementsByName
。答案 1 :(得分:0)
规则是id
应该与所有span元素使用相同initials
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;
}
如果您不想使用ID,可以使用getElementsByTagName
并更改此功能:
function doIt(){
var spans = document.getElementsByTagName('span');
for(var i = 0; i < spans.length; i++){
spans[i].innerText = document.getElementById('i').value;
}
}