Javascript大于和小于不能正常工作
Javascript great than and less than not functioning correctly
我正在使用一组函数从URL中提取图像。例如,如果 URL example.com/image/8/则将加载第 8 张图像。
问题是当 URL 小于 10 时它不起作用(我的函数将 varNumber 设置为 1,但是当它的 10 或更多时,功能工作正常。 这是代码..
var totalCount = '<?php echo $total; ?>';
HREF = '<?php echo get_permalink($post->ID); ?>';
var url = window.location.pathname;
var urlsplit = url.split("/");
var imgNumber = urlsplit[5];
if (typeof imgNumber === 'undefined') {
imgNumber = 1;
} else if (imgNumber < 1) {
imgNumber = 1;
history.pushState('', '', HREF);
} else if (imgNumber > totalCount) {
alert("else if ( " + imgNumber + " > " + totalCount + ")");
imgNumber = 1;
history.pushState('', '', HREF);
} else {
$("#slider-"+imgNumber).removeClass("img-inactive");
$("#slider-"+imgNumber).addClass("img-active");
$("#slider-1").removeClass("img-active");
$("#slider-1").addClass("img-inactive");
}
如您所见,上面的代码首先检查是否定义了 varNumber,然后检查它是否小于 1。之后,它会检查它是否大于总计数。 这就是它搞砸的地方。我检查了我的浏览器控制台并运行警报以验证 totalCount 和 imgNumber 是否有变量。
要获得更好的示例,请参阅以下链接:
img数字>总数不起作用...http://badsentinel.com/2014/09/18/daily-giftastic-take-away-these-three-fingers-and-what-are-we-left-with-13-gifs/3/
img数字>总数工作正常...http://badsentinel.com/2014/09/18/daily-giftastic-take-away-these-three-fingers-and-what-are-we-left-with-13-gifs/10/
提前致谢
首先用parseInt
解析值,如下所示:
var imgNumber = parseInt(urlsplit[5],10); //second parameter i.e '10' here is radix which is optional but it is advised to use it.
否则,在javascript/jquery中,值被视为string
当我们处理numbers
时,我们必须使用parseInt
或parseFloat
来解析它。
编辑:- 根据您的评论尝试:
var imgNumber = parseInt(urlsplit[5],10) || 0; //if parseInt() fails to parse value to int then it will return 0 value.
抓取imgNumber
时,请改为执行以下操作:
var imgNumber = parseInt(urlsplit[5]);
urlsplit[5]
会检索一个string
,所以你需要把它解析成一个int
。
比较之前,应将imgNumber
从window.location.pathname
检索到的字符串表示形式显式转换为数字。 将字符串值与数字文本进行比较时,数字文本将强制转换为字符串,而不是相反。
11"小于字符串"3"?以明确他们为什么以这种方式排序。
将urlsplit[5];
更改为 +urlsplit[5];
,以便将其转换为数字。这是一个字符串。
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)