从javascript循环中的函数中检索变量
Retrieve a variable out of a function in a javascript loop
我在使用以下脚本时遇到问题:当用户点击上传按钮并选择一些图像时,它会创建divs
并为每个图像添加一个。
但是,我无法从tba
变量的函数中检索到它。我知道这个问题已经被问过好几次了,我尝试了很多不同的方法(包括函数中的reader.onload
…),但我没有成功地检索到那个变量。
<script type="text/javascript">
$(document).ready(function() {
function readURL(input) {
if (input.files) {
var tba = '';
for (var i = 0; i < input.files.length; i++) {
if(input.files[i]) {
var reader = new FileReader();
reader.onload = function (e) {
tba += '<div class="gallery_image"><img src="'+e.target.result+'" alt="Image currently not accessible" /></div>';
};
reader.readAsDataURL(input.files[i]);
}
}
$('#gallery_container').html(tba);
}
}
});
</script>
非常感谢你的帮助,祝你今天愉快。
变量tba
刚好在您的函数范围内可用。若要访问此函数之外的tba
,请将声明也移到它之外。
// global
var tba = '';
$(document).ready(function() {
function readURL(input) {
if (input.files) {
tba = '';
编辑:
由于我回答的第一部分没有提供所需的帮助,那么删除tba
并直接进行DOM操作怎么样?
你的功能应该是这样的:
<script type="text/javascript">
$(document).ready(function() {
function readURL(input) {
if (input.files) {
$('#gallery_container').html(''); //clear the container
for (var i = 0; i < input.files.length; i++) {
if(input.files[i]) {
var reader = new FileReader();
reader.onload = function (e) {
// append your generated HTML directly
$('#gallery_container').append('<div class="gallery_image"><img src="'+e.target.result+'" alt="Image currently not accessible" /></div>');
};
reader.readAsDataURL(input.files[i]);
}
}
// removed the dom manipulating part here
}
}
});
</script>
如果在函数外定义变量,它将从函数中获取值。这被称为全局范围,否则它只能在函数范围内使用。
检查此项:
var a = 30;
function foo() {
a = 25;
}
foo();
alert(a); // will give 25
点击此处查看实时
所以你的代码应该看起来像:
<script type="text/javascript">
$(document).ready(function() {
var tba = '';
function readURL(input) {
if (input.files) {
for (var i = 0; i < input.files.length; i++) {
if(input.files[i]) {
var reader = new FileReader();
reader.onload = function (e) {
tba += '<div class="gallery_image"><img src="'+e.target.result+'" alt="Image currently not accessible" /></div>';
};
reader.readAsDataURL(input.files[i]);
}
}
$('#gallery_container').html(tba);
}
}
});
</script>
相关文章:
- 如何在JavaScript中检索变量的名称
- 如何从Mysql检索变量并在JS中的函数中使用它
- 尝试检索变量以检查表单是否有效
- Javascript 正则表达式从句子中检索变量
- 从 JavaScript 传递后无法检索变量
- 从函数中检索变量
- 从python Appengine中的Javascript函数中检索变量
- 如何在jQuery中检索变量的值
- 从 javascript 对象方法回调中检索变量
- 从javascript循环中的函数中检索变量
- 用javascript在onclick中检索变量
- 用Java解析JavaScript代码以检索变量'的名字
- 如何检索变量而不是echo
- 使用ajax加载函数检索变量
- jquery.从文本文件中获取和检索变量
- 在JavaScript函数中从SQL查询中检索变量(重写)
- 从包含 Javascript 中包含的 JSON 数据的 HTML 中检索变量
- 从HTML网站检索变量名
- 从twitter的json对象中检索变量
- 索引页检索变量从所有的帖子