Javascript “如何更改名称”;“原始数据”;没有ID的图像中的属性名称
上下文:我正在尝试解决lazyload脚本在我的设置中无法正常工作的问题 我不确定这是否现实,但我的想法是: 在标题部分单击时,我想更改该部分中包含的图像的所有属性(以便图像显示) 从原始数据到src 我是这样的: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
$('#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(){谢谢,我正在努力理解