Jquery没有替换URL

时间:2017-05-31 20:25:25

标签: javascript jquery

我的问题很简单,但我不能让它工作,在localhost上它正在替换href而没有任何问题,但是在服务器上却没有,我不知道是不是因为.htaccess文件更改了URL这就是为什么Jquery不改变它或者这个代码有问题的原因。

从屏幕抓取中检索href,它包含url的后半部分,如:

  

/一些/内容

看起来像

  

http://dev.website1/some/content

虽然看起来像:

  

http://www.google.co.uk/some/content

var base = "http://www.google.co.uk/";
$('a').each(function(index, element) {
  element.href = element.href.replace("http://dev.website1/", base);
});
$('img').each(function(index, element) {
  element.src = element.src.replace("http://dev.website1/", base);
});

4 个答案:

答案 0 :(得分:0)

您应该设置元素.prop([prop]).attr([attr]),而不是.href / .src



var base = "http://www.google.co.uk/";

$('a').each(function() {
  var $element = $(this);
  var href = $element.prop('href');

  $element.prop('href', href.replace("http://dev.website1/", base));
});

$('img').each(function() {
  var $element = $(this);
  var src = $element.prop('src');

  $element.prop('src', src.replace("http://dev.website1/", base));
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <a href="http://dev.website1/test_href">Test href</a><br />
  <a href="http://dev.website1/test_href2">Test href2</a><br />
  <a href="http://dev.website1/test_href3">Test href3</a><br />
</div>
<br />
<div>
  <img src="http://dev.website1/test_src.png" alt="test_src" /><br />
  <img src="http://dev.website1/test_src2.png" alt="test_src2" /><br />
  <img src="http://dev.website1/test_src3.png" alt="test_src3" /><br />
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

&#13;
&#13;
var base = "http://www.google.co.uk/";
    $('a').each(function(index, element) {
      let e1 = $(element)
      e1.attr('href', e1.attr('href').replace("http://dev.website1/", base));
    });
    $('img').each(function(index, element) {
      let e1 = $(element)
      e1.attr('src', e1.attr('src').replace("http://dev.website1/", base));
    });
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<a href="http://dev.website1/aaa">link1</a>
<img src="http://dev.website1/bbb" />
&#13;
&#13;
&#13;

使用.attr()

尝试此代码段

答案 2 :(得分:0)

试试这个!

var base = "http://www.google.co.uk/";
$('a').each(function(index, element) {
  $(element).attr('href').replace("http://dev.website1/", base);
});
$('img').each(function(index, element) {
  $(element).attr('src').replace("http://dev.website1/", base);

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a href="http://dev.website1/">Test</a>
<img src="http://dev.website1/"">

答案 3 :(得分:-1)

并非所有浏览器都支持

element.href。尝试使用element.getAttribute(&#39; href&#39;)获取它。