我在HTML
中的输入隐藏元素中存储了一些值<input type="hidden" class="w_e_t_t_c_d" value="1659" />
<input type="hidden" class="w_e_t_t_c_d" value="1569" />
<input type="hidden" class="w_e_t_t_c_d" value="1699" />
<input type="hidden" class="w_e_t_t_c_d" value="500" />
<div id="max_num"></div>
然后我试图通过这个JavaScript函数访问最大值
function decre_incoming_troops()
{
//Selecting all elements of class w_e_t_t_c_d
var incoming_troops = $('input:hidden.w_e_t_t_c_d');
var lastReach = 0;
for(var i = 0; i < incoming_troops.length; i++)
{
if(incoming_troops[i].value > lastReach)
{
lastReach = incoming_troops[i].value;
}
document.getElementById("max_num").innerHTML = lastReach;
}
}
decre_incoming_troops();
但出乎意料的是,这个功能没有给出最大价值。
我对它进行了详细的调试,并对此if(incoming_troops[i].value > lastReach)
比较条件返回错误结果进行了罚款。
我不知道代码中是否有任何错误或逻辑错误。
这是FIDDLE中的示例
或者您可以在下面的代码段中查看相同内容
function decre_incoming_troops()
{
//Selecting all elements of class w_e_t_t_c_d
var incoming_troops = $('input:hidden.w_e_t_t_c_d');
var lastReach = 0;
for(var i = 0; i < incoming_troops.length; i++)
{
if(incoming_troops[i].value > lastReach)
{
lastReach = incoming_troops[i].value;
}
document.getElementById("max_num").innerHTML = lastReach;
}
}
decre_incoming_troops();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input type="hidden" class="w_e_t_t_c_d" value="1659" />
<input type="hidden" class="w_e_t_t_c_d" value="1569" />
<input type="hidden" class="w_e_t_t_c_d" value="1699" />
<input type="hidden" class="w_e_t_t_c_d" value="500" />
<div id="max_num"></div>
&#13;
提前谢谢。
答案 0 :(得分:3)
您正在对字符串值执行字典比较。相反,您应该转换为整数:
parseInt(incoming_troops[i].value, 10)
我为你修理了小提琴:
https://jsfiddle.net/ub5pw6r8/2/
var lastReach = 0;
for (var i = 0; i < incoming_troops.length; i++) {
var x = parseInt(incoming_troops[i].value, 10); // Base-10 conversion.
if (x > lastReach) {
lastReach = x; // Current maximum.
}
} // When the loop is done, we have the overall maximum. Now display it.
document.getElementById("max_num").innerHTML = lastReach;
答案 1 :(得分:0)
您从标签获得的值是一个字符串。你需要它是一个数字。
if(new Number(incoming_troops [i] .value)&gt; lastReach)
parseInt()如上所述也有效。
如果您找到了更大的数字,也只需要设置DOM元素 current = new Number(incoming_troops [i] .value)
if(current > lastReach)
{
lastReach = current;
document.getElementById("max_num").innerHTML = lastReach;
}