javascript - 在触发之前更改 <a> 标记的 href

标签 javascript jquery html

我目前的问题是我想在页面加载它之前指向的内容之前更改标记的 href。

<a href = "#oldLink" onclick = "this.href = #newLink"></a>

我试过类似的方法,但没有用。我试过:

<a href = "#oldLink" onclick = "changeLink();"></a>

在另一个文件中:

changeLink(){
    $("a").attr("href", "#newLink");
}

这是行不通的,除非您在更改发生之前发出警报,然后它确实按预期发生了。任何帮助将不胜感激,这是我第一次发帖,如果格式不正确,我们深表歉意

最佳答案

你可以这样做:

HTML:

<a href = "#oldLink" id="link"></a>

EIDT:

之前的解决方案将创建事件的递归循环,改为这样做

JQUERY:

$(function () {

$("#link").on("click", function (e) {

    e.preventDefault(); //stop default behaviour

    $(this).attr("href", "#newLink"); // change link href

    window.location.href = "#link2";
  });

});

或:

$(function () {

$("#link").on("click", function (e) {

    if ($(this).attr('href') === '#oldLink') // check if it is old link
    {

        e.preventDefault(); //stop default behaviour

        $(this).attr("href", "#newLink"); // change link href

        $(this).trigger("click"); // click link programmatically

    }
  });

});

更新:

$(function () {

    $("#link").on("click", function (e) {

        if ($(this).attr('href') === '#oldLink') // check if it is old link
        {

            $(this).attr("href", "#newLink"); // change link href

            $(this).trigger("click"); // click link programmatically

            return false;

        }
      });

    });

关于javascript - 在触发之前更改 <a> 标记的 href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25095105/

相关文章:

javascript - AJAX 和 500 内部服务器错误

javascript - 根据其他复选框的选择来限制复选框的选择

javascript - Bootstrap Accordion 元素不会关闭

php - 如何使用 php 获取 HTML 页面的标题?

javascript - 隐藏的路由器 View 破坏了数据绑定(bind) - Aurelia

javascript - 使用javascript在html页面上添加一个随机div(不重复)

jquery - 使用 .cssRules 访问跨域样式表

jquery - 单击左栏中的链接时,需要在中心栏(三栏布局)中加载 html 页面

html - 如何在html中选择奇数元素?

javascript - CMS 中的响应图像