2011-10-14 42 views
0

我已經搜索了幾天,沒有運氣。請幫忙。這個項目只能在IE7中使用,它有一個輸入你的名字的文本框,onclick應該把這個名字填入所有的跨度。這是我在哪裏,但它只改變了第一個跨度。getElementById和innerText只改變一個,不是全部

請幫忙。謝謝。

<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

元素的id在文檔中應該是唯一的。您不能對多個元素使用相同的id。一些選項:

  • 給出的元素不同的ID並使用獨立的getElementById
  • 多次調用檢索利用getElementsByTagName環比結果標籤名稱的元素檢索。 (考慮包裝的共同span元素在div和相對標籤名稱選擇到包裝。)
  • 給元素的通用類名稱和使用的getElementsByClassName一些實施檢索結果
  • 給元素的共同價值爲name屬性(不需要是唯一的)和使用getElementsByName
+0

首先感謝您快速的答案。我知道ID可能會導致問題,而有關使用類的問題。不幸的是,我只能使用第一個例子。我不想走這條路線,因爲當我開始越來越多時(比如1,首字母2,首字母3 ...),將會非常麻煩。 我不認爲其他人在IE7中工作,getElementsByTagName,getElementsByClassName,getElementsByName。 請幫忙。謝謝。 – user996248

+0

希望得到一些澄清。我很接近完成這一點。我不知道爲什麼它不工作,除非一些JavaScript標籤無法在IE7中工作。 – user996248

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

男人我很親密。我試過沒有重複的ID。你的重做形式和最後的doIt功能的方法似乎不起作用。我有... – user996248

+0

<! - function doIt(){var spans = document.getElementsByTagName('span'); for(var i = 0; i

name
名稱
名稱
名稱 user996248

+0

希望得到一些澄清。我很接近完成這一點。我不知道爲什麼它不工作,除非一些JavaScript標籤無法在IE7中工作。 – user996248

相關問題