Javascript Jquery最接近并查找不';好像不行
这是我的密码。我无法让jquery代码正常工作 HTML: 我使用以下代码触发函数:Javascript Jquery最接近并查找不';好像不行,javascript,jquery,html,find,closest,Javascript,Jquery,Html,Find,Closest,这是我的密码。我无法让jquery代码正常工作 HTML: 我使用以下代码触发函数: $("#headerImage").change(readURL); imagePrev是一个base64数据。这很有效,因为当我尝试 $("#img_url").attr('src', imagePrev); 图像将被加载 但是我想使用.closest或.find或.sibbins或任何必要的代码,这样我就可以找到最近的img标记并替换其src attr。问题在于this变量,一旦执行进入$(reader
$("#headerImage").change(readURL);
imagePrev
是一个base64数据。这很有效,因为当我尝试
$("#img_url").attr('src', imagePrev);
图像将被加载
但是我想使用.closest或.find或.sibbins或任何必要的代码,这样我就可以找到最近的img标记并替换其src attr。问题在于
this
变量,一旦执行进入$(reader).load()
,则this
变量的值会更改
使用以下命令
function readURL(e){
$this = $(this);
if (this.files && this.files[0]){
var reader = new FileReader();
$(reader).load(function(e) {
imagePrev = e.target.result;
var imgElement = $this.siblings('img');
imgElement.attr('src', imagePrev);
});
reader.readAsDataURL($this[0].files[0]);
}
};
请构建一个完整的可复制示例。最好是在编辑问题时使用可用的代码片段工具。缺少的主要部分是如何调用js代码。jquery代码在哪里?上下文中的“this”是什么?添加包含它的代码。。。知道“这个”指的是什么是很重要的。噢,很好。成功了。你能解释一下它为什么起作用吗?谢谢。@RJDO问题在于
this
变量,一旦执行进入$(reader).load()
,则this
变量的值将发生变化。执行$this.slides('img')代码>会更好,不会在DOM中上下波动;)@事件侦听器中的RJDO回调总是(我很确定)更改上下文(这一点)。将类似var=this
的内容置于这样的结构之外以保持对outter contextYeah的引用是一种习惯用法。谢谢你告诉我。我将代码更改为.sibbins():D
$("#img_url").attr('src', imagePrev);
function readURL(e){
$this = $(this);
if (this.files && this.files[0]){
var reader = new FileReader();
$(reader).load(function(e) {
imagePrev = e.target.result;
var imgElement = $this.siblings('img');
imgElement.attr('src', imagePrev);
});
reader.readAsDataURL($this[0].files[0]);
}
};