<select> <option>的值以字符串形式返回

时间:2016-04-10 15:16:54

标签: select integer position option selected

有没有办法获得&lt; option&gt;的价值?要设置为实际整数?我有以下HTML代码: &lt; select id =“proteinperc”onchange =“setMacrosProtein()”&gt;       &lt; option value =“0”selected&gt; 0%&lt; / option&gt;       &lt; option value =“5”&gt; 5%&lt; / option&gt;       &lt; option value =“10”&gt; 10%&lt; / option&gt;       &lt; option value =“15”&gt; 15%&lt; / option&gt;       &lt; option value =“20”&gt; 20%&lt; / option&gt;       &lt; option value =“25”&gt; 25%&lt; / option&gt;       &lt; option value =“30”&gt; 30%&lt; / option&gt;       &lt; option value =“35”&gt; 35%&lt; / option&gt;       &lt; option value =“40”&gt; 40%(Rec。)&lt; / option&gt;       &lt; option value =“45”&gt; 45%&lt; / option&gt;       &lt; option value =“50”&gt; 50%&lt; / option&gt;       &lt; option value =“55”&gt; 55%&lt; / option&gt;       &lt; option value =“60”&gt; 60%&lt; / option&gt;       &lt; option value =“65”&gt; 65%&lt; / option&gt;       &lt; option value =“70”&gt; 70%&lt; / option&gt;       &lt; option value =“75”&gt; 75%&lt; / option&gt;       &lt; option value =“80”&gt; 80%&lt; / option&gt;       &lt; option value =“85”&gt; 85%&lt; / option&gt;       &lt; option value =“90”&gt; 90%&lt; / option&gt;       &lt; option value =“95”&gt; 95%&lt; / option&gt;       &lt; option value =“100”&gt; 100%&lt; / option&gt;     &LT; /选择&GT; 然后我有下面的脚本试图访问这些选项值并使用它们执行计算。问题是,当我用它们进行任何计算时,我得到的只是字符串连接或奇怪的值。 function setMacrosProtein(){ myProtein = document.getElementById(“proteinperc”)。value; var removeValue = 101 - (myProtein + myFats + myCarbs); 警报(removeValue); //这里提醒只是为了测试第一次计算。 var x = document.getElementById(“fatperc”)。options.length; for(i = 0; i&lt; x; i ++){     //检查fatperc     if(document.getElementById(“fatperc”)。options [i] .value + myFats&gt; = removeValue){         document.getElementById(“fatperc”)。options [i] .disabled = true;     } else if(document.getElementById(“fatperc”)。options [i] .value + myFats&lt; removeValue){                 document.getElementById(“fatperc”)。options [i] .disabled = false;             }     //检查carbperc     if(document.getElementById(“carbperc”)。options [i] .value + myCarbs&gt; = removeValue){         document.getElementById(“carbperc”)。options [i] .disabled = true;     } else if(document.getElementById(“carbperc”)。options [i] .value + myCarbs&lt; removeValue){                 document.getElementById(“carbperc”)。options [i] .disabled = false;             } } // setCals(); } 如果没有办法从选项值返回一个整数,我确实有一个解决方法,但有一个小问题。我可以设置一个带有镜像值到选项列表的新数组,即:array [0]将等于option [0],我可以在if语句中检查数组。 但是,如何以这种方式将变量设置为当前选定的选项?如何在选项数组中引用当前所选选项的位置以获取新创建的数组中的镜像位置?为了澄清,如果所选的选项当前是选项[4],我如何引用它的位置然后拉取数组[4]的值?

2 个答案:

答案 0 :(得分:0)

使用一元运算符+。比parseInt()更容易。只需在要转换为数字的内容前面加上一个加号即可。

示例:

<select id="movie">
  <option value="10">Casablanca ($10)</option>
  <option value="12">Rear Window ($12)</option>
  <option value="8">Vertigo ($8)</option>
  <option value="9">Rosemary's Baby ($9)</option>
</select>

const movieSelect = document.getElementById('movie');
const ticketPrice = +movieSelect.value;

答案 1 :(得分:-1)

在javascript文件中尝试使用parseInt(...)