Javascript “如何更改名称”;“原始数据”;没有ID的图像中的属性名称

Javascript “如何更改名称”;“原始数据”;没有ID的图像中的属性名称,javascript,jquery,attributes,Javascript,Jquery,Attributes,上下文:我正在尝试解决lazyload脚本在我的设置中无法正常工作的问题 我不确定这是否现实,但我的想法是: 在标题部分单击时,我想更改该部分中包含的图像的所有属性(以便图像显示) 从原始数据到src 我是这样的: $('#s101').click(function(){ var a = $('#b01').next().find('img').attr("data-original"); // alert (a) // will give me the url of the attr. d

上下文:我正在尝试解决lazyload脚本在我的设置中无法正常工作的问题

我不确定这是否现实,但我的想法是: 在标题部分单击时,我想更改该部分中包含的图像的所有属性(以便图像显示)

从原始数据到src

我是这样的:

$('#s101').click(function(){

var a = $('#b01').next().find('img').attr("data-original");

// alert (a) // will give me the url of the attr. data-original: (http...)

x = a.getAttribute("data-original");
a.setAttribute("src", x);
a.removeAttribute("data-original");
                          });
这是行不通的。你能帮忙吗?

试试这个

$('#b01').next().find('img').each(function(){
   $(this).attr("src", $(this).attr("data-original") ).removeAttr("data-original");
});
按照您的“点击”处理程序方法,您可能希望执行以下操作

$("#btnChangeImage").click(function(){
    var a = $("#myImg");

    var x = a.attr("data-original");
    a.attr("src", x);
    a.removeAttr("data-original");
}))

基本上,问题是您试图对一个属性而不是一个元素进行操作,一旦您拥有了该属性,您似乎正在使用一个旧的jQueryAPI版本


这里有一个快速的例子来演示:

a
是一个字符串,而不是DOM元素,为什么要对其调用
getAttribute
setAttribute
。我不确定您是否使用了旧版本的jQuery,但是获取和设置属性的正确语法与您使用的略有不同。使用
.attr(“attribute here”)
获取属性,使用
.attr(“attribute here”,“value here”)
设置属性。@SgtAJ他正在混合使用jQuery和DOM函数。是的,这就是我需要帮助的原因,我不掌握所有的概念…尝试在控制台中获取$('#b01').next().find('img').length。可能是您有错误的搜索img条件您是对的,它是未定义的,很有趣,因为这将在控制台日志中为我提供正确的值:var a=$('#b01').next().find('img').attr(“原始数据”);更正:我在这一部分有3个图像,它适用于第二个图像,它将此更改为此!所以它适用于第二个实例:您完全正确,我有一个问题,我这样解决:$('#s101').children().next().find('img').each(function(){谢谢,我正在努力理解