2010-08-04 40 views
0

如何更新id =「b」中的文本?以相同的id實時更新javascript中的文本

<script type="text/javascript"> 
function updateb() 
{ 
var a= document.getElementById("a").value; 
var b = document.getElementById("b").innerHTML = a * 10; 
} 
</script> 

<input type="text" id="a" name="a" value="10" onKeyUp="updateb();" /><p id="b" name="b"></p> 
<input type="text" id="a" name="a" value="20" onKeyUp="updateb();" /><p id="b" name="b"></p> 
<input type="text" id="a" name="a" value="30" onKeyUp="updateb();" /><p id="b" name="b"></p> 

回答

0

請注意,id字段對於文檔必須是唯一的。也就是說,你不能在你的例子中有三個具有相同ID的元素。

否則,您發佈的代碼應該更新B的內容,但顯然您需要在輸入字段中對onchange或onblur事件做出響應。

2

1.)ID在頁面中應始終是唯一的。

2)的getElementById總是返回與同一ID只有一個元素,如果有多個ID與相同的值

3)上面的問題,你可以嘗試getElementsByName。它與getElementById差異很相似,它會給你所有具有相同名稱的元素。如果你這樣做

x = document.getElementsByName(「b」);

X [0]將包含第一個

X [1]將包含:第二個

X [2]將含有3日一個

如果你想要通過的getElementById然後改變來實現ur元素id與任何其他獨特的名稱,如:

<script type="text/javascript"> 
function updateb(Src) 
{ 
    var a= Src.value; 
    document.getElementById("b" + Src.id.substr(1)).innerHTML = a * 10; 
} 
</script> 

<input type="text" id="a1" name="a" value="10" onKeyUp="updateb(this);" /><p id="b1" name="b"></p> 
<input type="text" id="a2" name="a" value="20" onKeyUp="updateb(this);" /><p id="b2" name="b"></p> 
<input type="text" id="a3" name="a" value="30" onKeyUp="updateb(this);" /><p id="b3" name="b"></p> 
0

正如其他人指出的,文檔中的所有元素都應該有一個唯一的ID。 然而,就你而言,可能根本不需要id,因爲你可以使用元素的相對位置來實現你的目標。 此示例不需要ID或名稱,但根據您的總體要求,您的情況可能會有所不同。

<script type="text/javascript"> 
    function updateb(inputElement) 
    { 
     var a = inputElement.value; 
     var target = inputElement.nextSibling; 
     if(target != null){ 
      target.innerHTML = a * 10; 
     } 
    } 
</script> 

<input type="text" value="10" onKeyUp="updateb(this);" /><p></p> 
<input type="text" value="20" onKeyUp="updateb(this);" /><p></p> 
<input type="text" value="30" onKeyUp="updateb(this);" /><p></p> 

使用諸如由@KoolKabin提供的可能是在長期運行得更好,因爲它是更寬容的HTML結構發生變化的一個解決方案。無論哪種方式,通常有幾種不同的方法來處理任何給定的問題,並且您應該根據情況評估最佳狀態。

相關問題