1
 window.onload = function(){
      cds = document.getElementsByName( "cd[]" );
      for( var i = 0; i < cds.length; i++ ){
          cds[i].addEventListener("change", addCDToCart, false );
      }
 } 

 /**
   * this function is called
   * when a CD checkbox is selected
   */
  var addCDToCart = function(){
      //get total cost textbox value
      var txtTotal = $("total");
       // loop through all the checkboxes
       for( var i = 0; i < cds.length; i++ ){
           if( cds[i].checked == true ){
               var nextCD = parseFloat(cds[i].title );
               total = ((total) + (nextCD));
           }
       }
       txtTotal.value = total.toString();
       alert( total.toString() );
  }

我使用上面的代码来检查数组中的所有复选框。我想总结所有选中复选框的所有价格。问题是价格存储在 title 属性中,而不是 value 属性中。我尝试使用上面的代码从 title 属性中检查 2 个价格为 8.20 和 12.70 的复选框并总结它们,但它显示如下:

[object HTMLinputElement]8.212.7

我的任务说我不打算修改 HTML 代码。下面显示了部分 HTML 代码:

<div class='item'>
        <span class='CDTitle'>Where is the Love</span>
        <span class='CDYear'>2000</span>
        <span class='catDesc'>Rap</span>
        <span class='CDPrice'>12.70</span>
        <span class='chosen'><input type='checkbox' name='cd[]' value='974' title='12.70' /></span>
</div>
<div class='item'>
        <span class='CDTitle'>White Ladder</span>
        <span class='CDYear'>2000</span>
        <span class='catDesc'>Rock/Pop</span>
        <span class='CDPrice'>8.20</span>
        <span class='chosen'><input type='checkbox' name='cd[]' value='975' title='8.20' /></span>
</div>

解决此问题的任何提示?谢谢!

4

1 回答 1

1

你得到了title正确的。

问题似乎与total变量的初始化有关(问题中未显示),它似乎有一个HTMLInputElement,这导致您的数值的字符串连接。

也许在您的实际代码中,您将total变量与txtTotal包含input元素的 混为一谈。

于 2013-03-14T01:54:44.117 回答