我在这里有一个功能:
编辑:在这里为您提供了完整的代码!
$(".thumbnail").live("click",
function(){
$('#imageBig').find("#pictureContainer").remove();
$('#loadingImage').fadeIn();
var path = $(this).children().attr("src");
var newPath = path.substring(0, path.length-9);
var newPath2 = newPath += ".jpg";
var imageLoad = new Image();
$(imageLoad).load(function () {
if (--imageLoad == 0) {
// ALL DONE!
}
// anything in this function will execute after the image loads
$('#loadingImage').fadeOut();
var newImg = $('<img />').attr('src',$(this).attr('src'));
newImg.css("height","400px").css("width","600px");
$('#imageBig').append( $(newImg) );
})
.attr({
src:newPath2,
id:"pictureContainer"
});
})
我的问题在于.attr()
加载图片时,它会更改src(因此第1行“src:newPath2
”工作),但它不会输入ID。因此,当我的图像被创建时,它只会:<img src="newpath2" />
。没有身份证。难道我做错了什么?我查了几次jquery文档,我很确定这是怎么做的。
我认为问题来自.load(),但我不确定什么不起作用。
谢谢!
(如果你需要,我可以在此之前给你代码)
已解决:
只需将id提供给newImg而不是imageLoad。
答案 0 :(得分:1)
newImg由于$('<img />').attr('src',$(this).attr('src'))
而具有相同的SRC,但不是相同的ID,那么我认为您要附加(并引用)newImg,因此您应该将ID提供给newImg而不是loadImage。
答案 1 :(得分:1)
Setter和Getter!
(function($) {
// Attrs
$.fn.attrs = function(attrs) {
var t = $(this);
if (attrs) {
// Set attributes
t.each(function(i, e) {
var j = $(e);
// Aplica atributos
for (var attr in attrs) {
j.attr(attr, attrs[attr]);
};
});
return t;
} else {
// Get attributes
var a = {},
r = t.get(0);
if (r) {
r = r.attributes;
for (var i in r) {
var p = r[i];
if (typeof p.nodeValue !== 'undefined') a[p.nodeName] = p.nodeValue;
}
}
return a;
}
};
})(jQuery);
使用:
// Setter
$('#element').attrs({
'name' : 'newName',
'id' : 'newId',
'readonly': true
});
// Getter
var attrs = $('#element').attrs();
答案 2 :(得分:0)
我可能会对你想要做的事感到困惑,但为什么不这样做呢:
var newImg = $('<img />').attr('src',$(this).attr('src')).attr('id',$(this).attr('id'));
这也不会给你身份证明吗?