代码之家  ›  专栏  ›  技术社区  ›  Dominic Rodger

使用jQuery获取相对图像src

  •  7
  • Dominic Rodger  · 技术社区  · 15 年前

    我有这样的图像标签:

    <img src="/path/to/my/image.jpg" />
    

    但当我使用jQuery访问src位时,jQuery会返回:

    http://example.com/path/to/my/image.jpg
    

    这在我正在做的一些比较中造成了问题。我不想将图像路径更改为使用绝对URL。

    关于如何从图像路径获取绝对URL(这可能不像连接域那么简单,因为URL有时可能是绝对的),或者获取HTML中提供的路径,有什么想法吗?不管怎样,我都需要他们配合。

    根据activa的评论进行编辑

    cycle 插件,并在 onbefore 功能,我只是打电话 next.src . 我的jQuery和JavaScript-foo不足以真正理解cycle插件在生成什么 next

    我的图像标签实际上是这样的:

    <img src="/site_media/photologue/photos/cache/6927d406810ee9750a754606dcb61d28.jpg" alt="" class="landscape slideshow-image-1" />
    

    在我的 函数此代码:

    alert(next.src);
    

    导致出现具有以下内容的警报:

    http://127.0.0.1:8000/site_media/photologue/photos/cache/6927d406810ee9750a754606dcb61d28.jpg
    
    4 回复  |  直到 15 年前
        1
  •  18
  •   Mario Menger    15 年前

    $("img").attr("src") 返回src属性的实际值(在FF3和IE7中尝试)

    <img src="http://example.com/path/to/my/image.jpg" />
    

    它会回来的

    http://example.com/path/to/my/image.jpg
    

    当你有

    <img src="/path/to/my/image.jpg" />
    

    它会回来的

    /path/to/my/image.jpg
    

    问题编辑后再编辑

    听起来你可能想试试

    $(next).attr("src")
    
        2
  •  1
  •   balexandre    15 年前

    你为什么不把它脱掉?

    var hostname = 'http://' + window.location.hostname;
    

    它将被视为主机名

    http://example.com
    

    if( imgSrc == imgSrc2 ) ...
    

    if( ImgSource(imgSrc) == imgSrc2 ) ...
    

    使用

    function ImgSource(path) {
        return hostname + path;
    }
    

    或者反过来

    function ImgSource(path) {
        return path.replace(hostname, '');
    }
    
        3
  •  1
  •   Matthew Flaschen    15 年前

    Element.src Element.getAttribute("src") (这似乎相当于attr(“src”))。

    例如。:

    document.getElementsByTagName("img")[0].src
    

    而不是:

    document.getElementsByTagName("img")[0].getAttribute("src")
    

    . 我会让你jqueryify.src。

        4
  •  0
  •   Mark    12 年前

    我在一个似乎基于.NET的服务器上通过Ajax加载的页面上看到了这种情况。即使路径是相对的,它也会返回完整的URL,即使在所有其他浏览器中它都可以正常工作。只发生在IE8中。我不能基于域剥离,因为我正在处理的项目有几个环境。