.attr()或.prop()或replaceWith在iOS中不影响href?

时间:2018-07-01 18:09:58

标签: javascript jquery href attr prop

我试图弄清楚为什么iOS Safari浏览器不会像台式机浏览器那样应用href更改。到目前为止,我已经尝试过.attr().prop(),但似乎都没有人应用URL调整。

为了更具描述性,我正在尝试在4个元素的行中替换最后一个链接元素的href位置。

截至目前,生成的HTML如下所示:

<a href="http://www.URL.com/link-to-img-url-1">[LINK TO IMAGE 1]</a>
<a href="http://www.URL.com/link-to-img-url-2">[LINK TO IMAGE 2]</a>
<a href="http://www.URL.com/link-to-img-url-3">[LINK TO IMAGE 3]</a>
<a href="http://www.URL.com/link-to-img-url-4">[LINK TO IMAGE 4]</a>

但是我希望第四个链接应用不同的URL,如下所示:

<a href="http://www.DIFFERENTURL.com/">[LINK TO IMAGE 4]</a>

这是完整的代码段示例(图像链接只是占位符):

$(document).ready(function() {
  $("a:last").attr("href", "http://www.google.com/");
});
a {
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="http://www.URL.com/link-to-img-url-1">[LINK TO IMAGE 1]</a>
<a href="http://www.URL.com/link-to-img-url-2">[LINK TO IMAGE 2]</a>
<a href="http://www.URL.com/link-to-img-url-3">[LINK TO IMAGE 3]</a>
<a href="http://www.URL.com/link-to-img-url-4">[LINK TO IMAGE 4]</a>


这是到目前为止我尝试实现的其他一些脚本:

使用.attr()/在iOS上不起作用:

$(document).ready(function(){
    $("#instafeed a:nth-child(4)").attr("href", "http://www.DIFFERENTURL.com/");
});

使用.prop()/在iOS上不起作用:

$(document).ready(function(){
    $("#instafeed a:nth-child(4)").prop("href", "http://www.DIFFERENTURL.com/");
});

使用:eq(3)+ .attr()/在iOS上不起作用:

$(document).ready(function(){
    $("#instafeed a:eq(3)").attr("href", "http://www.DIFFERENTURL.com/");
});

使用[0] .href /在iOS上不起作用:

$(document).ready(function(){
    $('#instafeed a:last')[0].href = 'http://www.DIFFERENTURL.com/';
});

使用replaceWith(方法1)/在iOS上不起作用

$(document).ready(function(){
    $('#instafeed a').last().replaceWith('http://www.DIFFERENTURL.com/');
});

使用replaceWith(方法2)/在iOS上不起作用:

$(document).ready(function() {
  $("#instafeed a:last").show(function() {
    var before = $(this).attr('href');
    var replacewith = "https://DIFFERENTURL.com/";
    var after = before.replace(before, replacewith);
    $(this).attr("href", after);
  });
});

0 个答案:

没有答案