JS IOS问题:null不是对象
我有两个数组:
var tableIdsSold = [3, 38, 43, 44];
var tableIdsBook = [40];
我在“body”标签打开后立即从后端接收数组元素。 然后,在“body”标签关闭之前,我将链接放入“main.js”。 在“main.js”中,我运行此代码:
for (var i = 0; i < tableIdsSold.length; i++) {
document.querySelector('[data-circleId="' + tableIdsSold[i] + '"]').classList.add('purchased');
第二个数组也一样。 所以我只运行数组,使用数组元素作为 id。当脚本找到具有正确 id 的元素时 - 它应该将类添加到 html 标签“circle”。 所以问题是:脚本在任何地方都有效,但在 IOS 中无效。如果我在 mac(safari/chrome)或 iphone 5/6(safari/chrome)中打开此页面,我会在控制台中收到此错误:
TypeError: null is not an object (evaluating 'document.querySelector('[data-circleId="' + tableIdsSold[i] + '"]').classList')
脚本在“window.onload”函数中运行。是什么导致了这个问题? 抱歉我的英语不好
The Document method
querySelector()
returns the firstElement
within the document that matches the specified selector, or group of selectors. If no matches are found,null
is returned.
您需要检查此
document.querySelector('[data-circleId="' + tableIdsSold[i] + '"]')
是否为 null,否则无需执行操作。
代码片段
for (var i = 0; i < tableIdsSold.length; i++) {
let circleId = document.querySelector('[data-circleId="' + tableIdsSold[i] + '"]');
if (circleId) {
circleId.classList.add('purchased');
}
}
所以问题是:ios html 解释器不知何故将“data-circleId”类写为“data-circleid”。因此我的 JS 脚本无法找到“data-circleId”。