I am trying to pass along both the src and the rel tag values. Here’s the sample input.
<img class="image" src="example.jpg" title="" rel="value" />
The following is some code that is parsing all <img> tags on a page.
add: function(src, rel) {
if (this.cache[src]) {
return this.cache[src];
}
if (this.cache[rel]) {
return this.cache[rel];
}
var image = new Image();
image.src = src;
image.rel = rel;
this.setStyle(image, {display: 'block'});
if (image.complete && image.width) {
return image;
}
image.onload = (function(scope) {
return function() {
scope.cache[src] = image;
};
})(this);
jQuery(image).attr('rel', function() { image.rel } );
return image;
},
However, this is my output.
<img src="example.jpg" style="display: block;" />
It’s as if it’s completely ignoring the rel tag. I need to pass the rel tag value from the old <img> to the new <img>.
The code is setting the properties. Not sure, but if the
relproperty doesn’t map to the attribute, it won’t show up.Also jQuery muddles the distinction between attributes and properties a bit, so I’m not sure how it treats
rel.When you’re setting the
rel, add asetAttribute()call.Your original code does cause the
relproperty to be set, but not the attribute. This will actually set the attribute.You should be able to get rid of this line:
EDIT:
Here’s an alternate solution:
It seems that if you first set
image.rel = rel;, the jQuery has no effect. Get rid of that line, and thejQuerycode will work.