2011-05-13 61 views
0

我的HTML如何使用JavaScript獲取​​的內容?

<tr class="g1"> 
    <td id="saveursqte_box[]"> 
     <div class="t"> 
      xxxxxxxxxxxxx 
      <div class="r"> 
       <div class="a"> 
       </div> 
       <img src="images/saveurs/saveur_test.jpg" width="125" border=0> 
      </div> 
     </div> 
    </td> 
    <td class="i"> 
     <input type="text" name="saveursqte[]" alt="2.95" value="" size="3" onBlur="__sumform();"> 
    </td> 
</tr> 

我試圖做

我想要得到的內容:使用JavaScript <td id="saveursqte_box[]">

是:

<div class="t"> 
    xxxxxxxxxxxxx 
    <div class="r"> 
     <div class="a"> 
     </div> 
     <img src="images/saveurs/saveur_test.jpg" width="125" border=0> 
    </div> 
</div> 

我試過此javascript:

var saveursqte_box = document.getElementsById('saveursqte_box[]'); 

然後

htmltotal = htmltotal + saveursqte_box[i].innerHTML; 

但JavaScript的似乎不喜歡我:-(

+0

除非我弄錯了,[和]在HTML標識屬性中不是有效的字符...... – psmay 2011-05-13 20:35:59

+1

[]可以在id中沒有標準。 – scrappedcola 2011-05-13 20:38:33

回答

0

感謝所有!我知道我的JavaScript技能較低,但結合你的答案我一起來到這個和它完美的作品:

htmltotal += document.getElementById('saveurmoisqte_box_' + i).innerHTML;

按照您的回答,我刪除了的getElementById「S」。我的壞:我複製了getElementsByName,然後用Id替換了Name ......這就是爲什麼那裏有「s」的原因。這種錯誤可能會浪費你一週的時間進行調試...

之後,我將我的<td id="extrasqte_box[]">重命名爲<td id="extrasqte_box_0">。我以爲你可以像names(例如:name="xxxx[]")那樣編寫ids陣列,然後迭代,但我錯了。

有了它,它完美的工作!不bea-u-tiful,但它的工作原理。

什麼我實際上在這方面採取的是:

我有很多的項目,當您填寫的輸入(量)的訂單,產品的懸停形象出現在它的權利.. 。當你離開時(onBLur),表格總數被更新,並且使用上面的函數,我得到<td>的內容(包括懸停圖片),並且在「結帳部分」 。其結果是爲用戶提供超級清潔和用戶友好。不方便的是我希望這對你有意義。

1

它是document.getElementById n o「s」。 這document.getElementById('saveursqte_box[]');返回一個DOM元素並不像jQuery.So數組的代碼來獲取innerHTML的是:

htmltotal += saveursqte_box.innerHTML; 
1

除了@ scrappedcola的備註那裏是沒有的「在getElementById,您也可以在元素ID中使用方括號時會出現問題。

我跑你的例子在Firefox 4與<td id="saveursqte_box">和它的工作,而使用<td id="saveursqte_box[]">NULLgetElementById()結果。

0

另外: saveursqte_box [i] 我沒有定義。只需使用saveursqte_box