gpt4 book ai didi

javascript - 从 for 循环访问变量的特定实例(范围问题?)

转载 作者:行者123 更新时间:2023-11-30 06:33:54 24 4
gpt4 key购买 nike

对于任何类型的编程来说都是新手,如果这很困惑,我们深表歉意!我有一个叶绿素图,其中颜色由 slider 确定,并且工作正常。但是,当单击 map 上的每个特定形状时,我需要显示用于确定文本字段中颜色的值 - 并且在使用 slider 时仍会更新该值。

我可以让它为点击内的区域正确计算,但它不会随着幻灯片更新,所以我想我需要它在点击之外,然后只是一些显示/隐藏点击。但在点击之外,我没有“this”可供引用,也无法获得我需要的迭代。我一直在尝试遇到的所有可能的事情,现在完全迷路了。

非常感谢您的帮助/解释。

我得到的是:

function fromslide(){




// Set properties for each county.
for (var i=0; i < counties.length; i++) {
ctys = counties[i];
//console.log (ctys);
var id = ctys.data("id");
alloc= ((parseInt(Landvar[id].val) * landweight) + (parseInt(Popvar[id].val) * popweight) + (parseInt(Poorvar[id].val) * poorweight));
console.log(alloc);




// Set county color.
ctys.attr({
fill: getColor(alloc/ 1000000),
});


//console.log (selectedcnty);
console.log (window.selectedcnty);



//this is what's not working
if (selectedcnty = String(id)) { thisalloc = ((parseInt(Landvar[id].val) * landweight) + (parseInt(Popvar[id].val) * popweight) + (parseInt(Poorvar[id].val) * poorweight));}
$("#allocfield").val(thisalloc);







ctys.click(function() {


for (var i=0; i < counties.length; i++) {
var ctys = counties[i];
var id = ctys.data("id");
ctys.attr({stroke: "#fff" });
};
this.toFront();
this.attr({stroke: "orange" });
var name = this.data("id");
$("#namefield").val( Popvar[name].name);
$("#popfield").val( Popvar[name].val);
$("#landfield").val( Landvar[name].val);
$("#poorfield").val( Poorvar[name].val);


console.log(thisalloc);

window.selectedcnty = name;

console.log (window.selectedcnty);
});

最佳答案

您可以在任何函数之外创建一个全局变量,然后您可以从函数调用中访问它。 this 是对的 - 它不是变量,而是引用“拥有”正在执行的方法的对象实例的特殊关键字。为了跨函数调用将数据从一个函数传递到另一个函数,您需要将其存储在全局变量中。只需在任何函数外声明变量,并在函数内引用它而不使用this:

var myVar = 0;
function myFunc() {
myVar++;
alert(myVar);
}

关于javascript - 从 for 循环访问变量的特定实例(范围问题?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15884965/

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