【问题标题】:How to efficiently change image attribute "src" from relative URL to absolute using jQuery?如何使用 jQuery 有效地将图像属性“src”从相对 URL 更改为绝对 URL?
【发布时间】:2013-09-22 22:44:16
【问题描述】:

我需要将 html 图像标签的 src 从相对 url 更改为绝对 url。

我正在使用以下代码。 urlRelative 和 urlAbsolute 已正确创建,但我无法修改最后一行中的图像。

我的脚本有什么问题?

..... // other code here

     request.done(function(resp) {
            var imgTags = $('img', resp).each(function() {
                var urlRelative = $(this).attr("src");
                var urlAbsolute = self.config.proxy_server + self.config.location_images + urlRelative;
                $(this).attr("src").replace(urlRelative, urlAbsolute); // problem here
            });

【问题讨论】:

  • 你能为此制作一个小提琴吗?
  • Javascript 中的 replace 方法返回一个值,并且不作用于现有的字符串对象。见:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
  • 对于绝对 URL,您可以使用:this.src = urlAbsolute;
  • jQuery("#my_image").attr("src", "first.jpg")

标签: javascript jquery


【解决方案1】:

这样试试

$(this).attr("src", urlAbsolute)

【讨论】:

  • 感谢您的回答,现在我可以更改图片的网址,但我需要更新相应的网址……知道如何实现吗?谢谢
  • 是的,每个元素都应该更新,更多细节在这里stackoverflow.com/questions/18868343/…
【解决方案2】:

试试$(this).attr("src", urlAbsolute);

【讨论】:

    【解决方案3】:
    jQuery("#my_image").attr("src", "first.jpg")
    

    【讨论】:

      【解决方案4】:

      将此代码用于src

      $(this).attr("src", urlAbsolute);
      

      Demo

      【讨论】:

        【解决方案5】:

        而不是下面的代码:

        $(this).attr("src").replace(urlRelative, urlAbsolute);
        

        使用这个:

        $(this).attr("src",urlAbsolute);
        

        【讨论】:

          【解决方案6】:

          你的代码可以简化很多

          $('img', resp).attr('src', function(idx, urlRelative ) {
              return self.config.proxy_server + self.config.location_images + urlRelative;
          });
          

          【讨论】:

            【解决方案7】:

            Javascript 中的 replace 方法返回一个值,并且不作用于现有的字符串对象。见:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace

            在你的例子中,你必须这样做

            $(this).attr("src", $(this).attr("src").replace(...))
            

            【讨论】:

              【解决方案8】:

              更改图像验证码刷新

              html:

               <img id="captcha_img" src="http://localhost/captcha.php" /> 
              

              jquery:

              $("#captcha_img").click(function()
                  {
                      var capt_rand=Math.floor((Math.random() * 9999) + 1);
                      $("#captcha_img").attr("src","http://localhost/captcha.php?" + capt_rand);
                  });
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-07-03
                • 1970-01-01
                • 1970-01-01
                • 2011-01-08
                • 2011-08-04
                • 1970-01-01
                相关资源
                最近更新 更多