我想在循环中创建特定数字的一些元素,将它们存储在变量中,然后在该循环外部访问该变量。
我想在循环外部访问该变量的原因是我可以将它们放在append函数中。
function range(start, stop, step) {
var a = [start],
b = start;
while (b < stop) {
b += step;
a.push(b);
}
return a;
}
var yAxis = range(1, 100, 10);
$.createAxis = function(axisValues) {
$(axisValues).each(function(index, element) {
yAxisNav = document.createElement('div');
var newValue = document.createTextNode("I have content!");
yAxisNav.appendChild(newValue);
return yAxisNav.className = 'graphBar_yAxis_label';
});
}(yAxis);
console.log(yAxisNav);
//$('body').append('<section>'+yAxisNav+'</section>');
以上只返回一个元素,如何存储它以使其可以在该循环外部访问?
答案 0 :(得分:1)
获取createAxis
return
yAxisNav对象。这应该是函数createAxis
中的最后一个语句,
return yAxisNav;
然后你可以得到如下:
var yAxisNav = $.createAxis(something);
<强> CODE 强>
$.createAxis = function(axisValues) {
$(axisValues).each(function(index, element) {
yAxisNav = document.createElement('div');
var newValue = document.createTextNode("I have content!");
yAxisNav.appendChild(newValue);
yAxisNav.className = 'graphBar_yAxis_label'; // Move up
return yAxisNav; // Return complete object
// ^^^^^^^^^^^^^
});
}(yAxis);
答案 1 :(得分:1)
由于你想返回一个div的列表,我已经将yAxisNav移到了函数之外,并在每个循环中附加它。
我认为你正在寻找这个......
var yAxisNav = "";
$.createAxis = function (axisValues) {
$(axisValues).each(function (index, element) {
var elem;
elem = document.createElement('div');
var newValue = document.createTextNode("I have content!");
elem.appendChild(newValue);
elem.className = 'graphBar_yAxis_label';
yAxisNav += elem.outerHTML;
});
return yAxisNav;
}(yAxis);
console.log(yAxisNav);
$('body').append('<section>'+yAxisNav+'</section>');
答案 2 :(得分:0)
如上所述here,请在要访问它的最高范围内定义变量。
在这种情况下,请在范围函数之外定义它。