gpt4 book ai didi

javascript - "missing ] after element list"带评估

转载 作者:行者123 更新时间:2023-11-30 13:40:42 25 4
gpt4 key购买 nike

我试图将两个参数传递给一个函数,“i”是一个 int 值,“map”是一个对象。我正在使用 eval 通知 Javascript 我正在传递对象,但是我收到错误“元素列表后缺少 ]”。

我对此有点陌生,所以我不能 100% 确定这是否是正确的做事方式......但是你......希望我走在正确的轨道上。

...

optionsControlDiv.innerHTML += '<input type="checkbox" onclick="toggleLayer('+eval(i)+","+eval(map)+')"'+c+' />'+this.opts[i]+'<br>';
console.log('<input type="checkbox" onclick="toggleLayer('+eval(i)+","+eval(map)+')"'+c+' />'+this.opts[i]+'<br>');
// OUTPUT:
// <input type="checkbox" onclick="toggleLayer(0,[object Object])" />Wiki<br>
// <input type="checkbox" onclick="toggleLayer(1,[object Object])" />webcams<br>
// <input type="checkbox" onclick="toggleLayer(2,[object Object])" />Photos<br>

// ERROR:
// missing ] after element list
// [Break on this error] toggleLayer(0,[object Object])

...

// The function
function toggleLayer(i,map) {
//console.log(i);
if (layers[i].Visible) {
layers[i].hide();
} else {
if(layers[i].Added) {
layers[i].show();
} else {
map.addOverlay(layers[i]);
layers[i].Added = true;
}
}
layers[i].Visible = !layers[i].Visible;
}

最佳答案

如果 map 是全局变量,这应该可以在不使用 eval 的情况下工作:

optionsControlDiv.innerHTML += '<input type="checkbox" onclick="toggleLayer('+i+',map)"'+c+' />'+this.opts[i]+'<br>';
console.log('<input type="checkbox" onclick="toggleLayer('+i+',map)"'+c+' />'+this.opts[i]+'<br>');

你有一个错误,因为 eval 期望字符串作为参数,而 map 对象在作为字符串调用时返回 [object Object]正在评估并导致错误。

关于javascript - "missing ] after element list"带评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2443871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com