【问题标题】:Dynamically create and "click" a link with jQuery使用 jQuery 动态创建和“单击”链接
【发布时间】:2011-06-28 10:52:25
【问题描述】:

我想动态创建一个<a href="mailto:..."> 元素,然后“单击”它。全部无需修改页面。

我正在尝试这个:

$('<a href="mailto:test@test.com">&nbsp;</a>').click();

……没用

【问题讨论】:

    标签: javascript jquery href mailto


    【解决方案1】:

    它不是 jquery,但它工作得很好。

    var link = document.createElement('a');
    link.href = url;
    document.body.appendChild(link);
    link.click();    
    

    【讨论】:

    • 感谢您准确回答问题:)
    • 非常简单易用的解决方案
    • 如果您尝试下载 xml 文件,请添加以下行:link.download = url; 否则,xml 文件将显示在浏览器中。
    【解决方案2】:

    点击链接意味着改变window.location,那么

    window.location = "mailto:test@test.com";
    

    【讨论】:

    • 这不会在所有浏览器中传递referrer信息,因此严格来说并不等同于创建链接并单击它
    • 这并不能解决问题。这仅向您展示如何更改当前的窗口位置。它没有回答如何以编程方式创建元素然后以编程方式单击它。
    【解决方案3】:

    要使其与 jQuery 一起使用,您首先需要选择 jQuery 对象内的 DOM 元素。

    $('body').append('<a id="link" href="mailto:test@test.com">&nbsp;</a>');
    $('#link')[0].click();
    

    注意 [0]

    小提琴:https://jsfiddle.net/fkwhvvhk/

    【讨论】:

    • 哇,只需检索 DOM 元素然后点击它。但是为什么 jQuery click() 函数不为每个查询项调用 DOM 呢?
    • 我认为这是一堆垃圾答案中最不垃圾的答案。我刚刚将 [0] 添加到我的代码中,现在它可以工作了。荒谬的。该链接在 DOM 中,jQuery 可以找到该链接,但没有明显的原因它不会单击它。没有错误,什么都没有。感谢您对这三个字符的修复。
    • $('#link')[0].click();在控制台中给出错误提示“TypeError: $(...)[0] is undefined”。 JQuery 3.2.1 和现代 Firefox 浏览器(版本 68)。我也讨厌“垃圾”的答案...
    【解决方案4】:

    .click() 使用 DOM,而不是 jQuery 对象

    应该是:

    $('<a href="mailto:test@test.com"></a>')[0].click();
    

    【讨论】:

    • 这是最简单的问题解决方案。也可以使用jQuery避免与$冲突:jQuery(&lt;a href="/product-edit/${this.selected.id}"&gt;&lt;/a&gt;)[0].click();
    【解决方案5】:

    试试这样的...

    演示:http://jsfiddle.net/wdm954/xtTGX/1

    $('.a').append('<a class="b" href="mailto:test@test.com">&nbsp;</a>');
    $('.b').click(function() {
        window.location = $(this).attr('href');
    }).click();
    

    【讨论】:

      【解决方案6】:

      你可以这样创建标签:

      $('PARENT_TAG').append('<a id="dinamic_link" href="mailto:test@test.com">&nbsp;</a>');
      //Now click it
      $('#dinamic_link').click();
      

      HTH!

      【讨论】:

      • 这似乎对我不起作用。也许有什么干扰,但.click() 似乎不适用于 /any/ 链接
      【解决方案7】:

      为什么不直接将窗口位置更改为链接的href?您是否有任何特定原因需要使用链接?

      否则:

      window.location = 'http://example.com';
      

      【讨论】:

        【解决方案8】:

        我发现了一些类似问题的问题,我找到了最简单的方法:

            var link = document.createElement('a');
        
            link.download = 'profile.png';
            link.href = '...';
            link.id = 'example';
            link.class = '...';
        
            document.body.appendChild(link);
        
            link.click();
        

        就我而言,我在尝试使用 jquery 时浪费了很多时间,$('#example').click()but 对我不起作用。至少问题是 jquery,我没有它就做到了。我希望它可以帮助某人。是一种设置锚点以下载图像并在之后单击的简单方法。

        【讨论】:

          【解决方案9】:
          $('#something').append('<a id="link" href="mailto:test@yourdomain.com"></a>');
          $('#link').trigger('click');
          

          【讨论】:

          • 这似乎对我不起作用。也许有什么干扰,但.click() 似乎不适用于 /any/ 链接
          【解决方案10】:

          我会说你应该考虑使用 .append() 将 href 添加到容器(主要是 div)并调用 .click()

          $('parent_div').append('<a id="link" href="mailto:test@test.com">&nbsp;</a>');
          //Now click it
          $('#link').click();
          

          【讨论】:

          • 这似乎对我不起作用。也许有什么干扰,但.click() 似乎不适用于 /any/ 链接
          【解决方案11】:

          无法模拟正常点击。您只能触发已绑定到元素的click 事件处理程序..

          作为@Alex has posted,你可以改变window.location达到同样的效果..

          【讨论】:

            【解决方案12】:

            刚刚在做这方面的教程!

            $("[href='mailto:test@test.com']").click();
            

            这应该选择所有带有 href 属性的元素,其值为“mailto:test@test.com”。

            www.w3schools.com/jquery/jquery_selectors.asp

            【讨论】:

              【解决方案13】:
              var link = document.createElement('<a>')
              link.href = "mailto:test@test.com";
              link.id = "hitme"
              $('#hitme').click();
              

              【讨论】:

              • 这似乎对我不起作用。也许有什么干扰,但.click() 似乎不适用于 /any/ 链接
              【解决方案14】:

              你必须使用 .on 然后调用 .click 。 动态生成的超引用不适用于简单的 .click()

              【讨论】:

                猜你喜欢
                • 2011-10-16
                • 1970-01-01
                • 2020-04-01
                • 2021-08-21
                • 1970-01-01
                • 1970-01-01
                • 2023-03-02
                • 2018-07-19
                • 1970-01-01
                相关资源
                最近更新 更多