2012-02-22 92 views
2

我有一個INPUT文本字段,一個DIV和一個IMG。輸入值和div的innerHTML用Javascript更改,但不會在顯示中更改

在IMG具有onClick事件:

  • 讀取輸入字段的當前值,

  • 1增加它,

  • 做了計算與增加的值,

  • 將結果寫入DIV。

輸入的值總是增加的正確方法和DIV的innerHTML始終得到正確的結果,但沒有在顯示變化。即使在「背景」中正確完成所有操作,顯示的數字也始終保持不變。

其中有趣的事我在同一網站的另一個地方使用了相同的操作,那裏的一切工作和完美顯示

下面是函數:

function priceCalculator(max_amound,price,id) 
    { 
     var amound = parseInt(document.getElementById('sell_amound_' + id).value); 
     max_amound = parseInt(max_amound); 
     if (amound < max_amound) 
     { 
      amound = amound + 1; 
      document.getElementById('sell_amound_' + id).value = amound; 
      var item_value = amound * price; 
      document.getElementById('price_' + id).innerHTML = item_value; 

      alert(document.getElementById('sell_amound_' + id).value + ',' + document.getElementById('price_' + id).innerHTML); 
     } 
    } 

這裏是PHP代碼中的元素:

<img src="images/plus.png" onclick="priceCalculator(\''.$bag_items[$i]['amound'].'\',\''.$bag_items[$i]['infos']['price'].'\',\''.$i.'\')" /> 
<form> 
    <input id="sell_amound_'.$i.'" type="text" readonly value="1" /> 
</form> 
<div id="price_'.$i.'">'.$bag_items[$i]['infos']['price'].'</div> 

在函數結束時的警報顯示正確的價值觀,但顯示的值留一樣。

這是一個非常簡單的操作...可能是什麼問題?

編輯:

加載「項」看起來像這樣的源代碼(這部分從數據庫循環創建的,當然,我刪除從代碼和那些不相干的造型後許多的div是因爲他們的存在):

<td> 
    <img id="item_pic_3" src="images/potions/3.png" onClick="shopSellInfo('3')" /> 
    <div>26</div> 
    <form> 
     <input type="hidden" id="selected_item" value="" /> 
    </form> 
    <div id="item_3" style="display: none;"> 
     <span>blah...</span><br /> 
     <span> 
      <br />blah...<br /><br /> 
      <div> 
       <div> 
        <img src="images/increase.png" onclick="priceCalculator('26','10','3')" /><br /> 
       </div> 
      <div> 
      <form> 
       <input id="sell_amound_3" type="text" readonly value="1" /> 
      </form> 
      /26 
      </div> 
     </div> 
     <br /> 
     <div id="price_3">10</div> 
     </span> 
    </div> 
</td> 

shopSellInfo(「3」)是使ITEM_3顯示在正確的地方的功能。

+0

向我們展示呈現的HTML而不是PHP代碼。 – glortho 2012-02-22 02:16:29

回答

0

我解決了這個問題!

問題是ID也出現在另一個地方,所以函數不知道由於重複的ID而在哪裏更改值。

無論如何,感謝您的答案,並會尋求幫助!

0

能否請您查看源代碼,並顯示什麼是輸出:該DIV id是對應於JavaScript的

<div id="price_'.$i.'">'.$bag_items[$i]['infos']['price'].'</div> 

檢查。

編輯item_3有CSS樣式display: none,這就是爲什麼變化沒有顯示出來。

+0

例如,如果$ i是1,它看起來像: '

10
' 它顯示得很好。但函數調用後沒有任何變化,它仍然是10.該函數調用其編號的權利,它可以得到它的價值,但不能以某種方式設置它... – PrincessOfSecret 2012-02-22 02:32:20

+0

它的奇怪的事情,Javascript「知道」,「price_1」已更改例如 - 20,'alert(document.getElementById('price_1')。innerHTML)'顯示20,但元素中的「物理」仍然顯示10 ... – PrincessOfSecret 2012-02-22 02:39:32

+0

Yepp,我們要確認這是真的已輸出,你能查看源文件並顯示我們嗎? – 2012-02-22 02:41:34