javascript - 如何将字符串转换为整数 javascript 以便它支持 ie 11?
问题描述
我的代码是这样的:
setCol (param) {
// missing forEach on NodeList for IE11
if (window.NodeList && !NodeList.prototype.forEach) {
NodeList.prototype.forEach = Array.prototype.forEach;
}
const allDates = document.querySelectorAll('.v-date-picker-table .v-btn .v-btn__content')
const dates = this.availableDates.map(x => parseInt(x.split('-')[2]))
allDates.forEach((x, i) => {
console.log(x.innerHTML) // example : 1, 2, 3, 4, 5 ,6 etc
console.log(parseInt(x.innerHTML)) // in firefox, chrome, it works. it return value. example : 1. But in ie 11, it return NaN
if (dates.indexOf(parseInt(x.innerHTML)) !== -1) {
console.log('a')
} else {
console.log('b')
}
})
},
此问题仅发生在浏览器中,即。我寻找参考并尝试这样:
parseInt(x.innerHTML, 10)
和
Number(x.innerHTML)
和
x.innerHTML * 1
但都是一样的,console.log(parseInt(x.innerHTML))
回报NaN
我怎么解决这个问题?
解决方案
JS Number Prototype 应该能够为您处理这个问题。我在 IE11 开发控制台中尝试了以下操作:
var numberString = "1234";
var toNumber = Number(numberString);
console.log(typof(toNumber));
// console.log result: "number"
所以这应该适用于你的例子。但我不知道你是否试图在你的代码中一次做太多的事情。我已经做了一个关于如何参数化的例子:) 让我知道它是否有效。
allDates.forEach((x, i) => {
var innerString = x.innerHtml
var numberFromInner = Number(innerString);
if (dates.indexOf(numberFromInner) !== -1) {
console.log('a')
} else {
console.log('b')
}
})
推荐阅读
- python - 如何找到模板和旋转图像之间的正确点对应关系?
- salesforce - 如何使用 apex 修改任何字段的元数据
- c# - 将 WPF 应用程序迁移到 dotnet Core 3 后获取 TaskCancelledException
- spring - 我们如何使用hibernate作为orm单独的数据库和模式来构建一个spring mvc多租户应用程序
- amazon-web-services - 当目标群体不健康时得到 502
- python - python中是否有一个绘图包可以处理缺失值而不省略x轴值/标签/比例?
- c# - XAML如何在居中的元素之后排列元素
- node.js - 在使用 Blazor 的 NodeJS 应用程序中使用 .NET 类库
- nginx - 在 body_filter_by_lua_block 中使用变量
- for-loop - 如何在液体 HTML 过滤器中将变量指定为 alt 属性