所以我正在编写一个函数来测试子字符串,显然它告诉我1到3大于13,这是我正在使用的代码:
var highlight = function(first,last,whichsub){
var text = $(".output2").text();
if(whichsub === "substring"){
text = text.substring(0,first)+"<color style='background:#0763D3'>"+text.substring(first,last)+"</color>"+text.substring(last);
}else if(whichsub === "substr"){
text = text.substr(0,first)+"<color style='background:#0763D3'>"+text.substr(first,last)+"</color>"+text.substr(last);
}
//console.log(text);
console.log(first+" "+last);
if(first > last){console.log("true");} // is printing true
$(".output2").html(text);
};
我对javascript没有任何经验,但我仍然无法理解可能导致这种情况的原因。
有谁知道我哪里出错了?谢谢!
答案 0 :(得分:0)
啊,我在写完问题时想出了问题,但想到我也会在这里发布正确答案/为什么会发生......
console.log
具有误导性。它告诉我3 > 13
,这显然是错误的,但恰好评估为true,假设我们将"3"
和"13"
称为 STRING ,而不是整数。那是我出错的地方,比较错误的数据类型。
我插入了input[type=number].val()
中的一个值,我假设它返回了一个数字,但是错了。与.val()
一起使用时,数字输入返回一个字符串。
var parsedF = parseInt(first)
&amp; var parsedL = parseInt(last)
按预期工作。
希望这有助于某人!