2013-10-20 77 views
0

我正在写一点练习,将事物从一个“select”移动到另一个“select”。很棒!我还没有多选,但我会稍后再做。更重要的是,我想我会添加计数器,以便与“选项”相关联的值可以相加。该功能似乎不起作用。当我将东西从一列移动到另一列时,用于求和值的标签填充文本0 [对象对象]。我相信这是由于一个非常明显的错误,但我缺乏用任何其他术语表达问题的词汇。请教我? :-)JavaScript-DHTML:对象值访问

<!DOCTYPE html> 

<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta charset="utf-8" /> 

    <style type="text/css"> 
     #selectSource { 
      width: 320px; 
     } 
     #selectTarget { 
      width: 320px; 
     } 
     #wgtsum { 
      width: 22px; 
     } 
     #cubesum { 
      width: 22px; 
     } 
    </style> 
    <title>Loader</title> 

<script> 
    var data; 
    var sumCube = 0; 
    var sumWgt = 0; 

    window.onload = function() { 
     //Add way to load JSON data from a text file or something 
     var load = document.getElementById('selectSource') 
     data = [ 
     { num: "1", cube: 6, wgt: 2, title: "num: 1 cube: 6 wgt: 2" }, 
     { num: "2", cube: 4, wgt: 4, title: "num: 2 cube: 4 wgt: 4" }, 
     { num: "3", cube: 2, wgt: 6, title: "num: 3 cube: 2 wgt: 6" } 
     ]; 

     for (i = 0; i < data.length; i++) { 
      load.options.add(new Option(data[i].title, data[i].num)); 

     } 

    } 

    function sum() { 
     var sumTarget = document.getElementById('selectTarget'); 

     for (i = 0; i < data.length; i++) { 
      for (o = 0; o < sumTarget.length; o++) { 
       if (sumTarget[o].value = data[i].value) { 
        sumCube = sumCube + data[i].cube; 
        sumWgt = sumWgt + data[i].wgt; 
       } 
      } 
     } 
     document.getElementById("cubesum").setAttribute("value", sumCube); 
     document.getElementById("wgtsum").setAttribute("value", sumWgt); 
    } 

    function move(from, to) { 
     selected = from.options.selectedIndex; 

     to.options.add(new Option(from.options[selected].text, from.options[selected].value)); 
     from.options.remove(selected); 

     sum(); 
    } 
</script> 
</head> 
<body> 
    <form> 
    <select id="selectTarget" size="4"> 
</select> 

<button type="button" onclick="move(this.form.selectSource, this.form.selectTarget)" style="width: 58px">To Target</button> 


<button type="button" onclick="move(this.form.selectTarget, this.form.selectSource)" style="width: 58px">To Source</button> 
<select id="selectSource" size="4"> 
</select> 
<input value="0" type="text" id="cubesum" size="5"/> 
<input value="0" type="text" id="wgtsum" size="5"/> 
    </form> 
</body> 
</html> 
+0

这可能是我所做的值的格式不会将它们存储为整数?我怎么能解决这个问题? JavaScript中最好的数组/对象符号是什么? – broguesquadron

回答

0

在你的“sum()”函数中它看起来像你的if语句应该做一个比较==而不是一个assignment =。

+0

嗨,GMauro。感谢您花时间帮助我。我改变了,但仍然收到错误。任何其他想法? – broguesquadron