Firefox / jQuery没有读取img元素的任何属性

时间:2009-05-28 16:52:09

标签: jquery firefox attributes

所以我试图合并两个图片库,GalleriaLightbox。它的工作方式是Lightbox将从anchor标签中读取 href ,Galleria将从以下代码中的image标签中读取 src

<a href="./public/images/gallery/2.JPG">
<img class="replaced" src="./public/images/gallery/2.JPG"/>
</a>

我试图将src的属性值拉出来并将其用作href的值。就目前而言,一旦我开始工作,我就必须重新编写代码。

这就是我将属性值拉出来的方式

var imageSrc = image.attr('src');

现在我已经在FF2,FF3中测试了它们,它们都没有读取值。在Chrome和IE中,它会读取值。我的想法是图像是用jQuery创建的,所以Firefox可能会快速读取并且jQuery还没有时间创建图像呢?

有什么想法吗?

谢谢,
列维

3 个答案:

答案 0 :(得分:0)

那你是如何选择图像的?

尝试:

$('.replaced').each(function(){
   var imageSrc = $(this).attr('src');
   //alert(imageSrc) /*  for IE  */
   console.log(imageSrc);
});

答案 1 :(得分:0)

检查以下内容:

  • 您是否正确定义了image?你是如何为此分配一个值的?
  • 您是否在表示该图片的DOM元素位置之后询问image的值?
  • 您是否确保在结束</body>标记之前将脚本放在身体末端? (如果你不这样做,你可能会得到一个空引用,任何Javascript执行都会终止。)

很有可能它与这三个问题中的一个有关。

答案 2 :(得分:0)

你是否准备好了你的电话?

$(document).ready(function(){
    var imageSrc = $('img.replaced').attr('src');
});

请注意,如果您有多个共享“已替换”类的图像,则需要从每个图像中读取src。上述方法仅适用于单个图像,如果要读取多个图像的属性,请使用:

$(document).ready(function(){
    var imageSrc = $('img.replaced').each(function(){
        $(this).attr('src');
    });
});