1

我正在尝试传递 thesrcreltag 值。这是示例输入。

<img class="image" src="example.jpg" title="" rel="value" />

以下是一些解析<img>页面上所有标签的代码。

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;
},

但是,这是我的输出。

<img src="example.jpg" style="display: block;" />

就好像它完全忽略了rel标签。我需要将rel标签值从 old<img>传递到 new <img>

4

1 回答 1

1

代码正在设置属性。不确定,但如果rel属性没有映射到属性,它就不会显示。

jQuery 也混淆了属性和属性之间的区别,所以我不确定它是如何处理rel.

设置时rel,添加setAttribute()呼叫。

var image = new Image();
image.src = src;
image.rel = rel;
image.setAttribute('rel',rel);

您的原始代码确实会导致rel设置属性,但不会设置属性。这实际上将设置属性。

您应该能够摆脱这一行:

jQuery(image).attr('rel', function() { return image.rel } );

编辑:

这是一个替代解决方案:

看来,如果你先设置image.rel = rel;,jQuery 没有任何效果。去掉那一行,jQuery代码就可以工作了。

于 2011-01-26T23:53:43.210 回答