使用jQuery动态创建和"单击"链接

aid*_*dan 13 javascript mailto jquery href

我想动态创建一个<a href="mailto:...">元素,然后"点击"它.所有这些都没有修改页面.

我正在尝试这个:

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

......无济于事

sol*_*cle 36

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

var link = document.createElement('a');
link.href = url;
document.body.appendChild(link);
link.click();    
Run Code Online (Sandbox Code Playgroud)

  • 感谢您回答确切问题的问题:) (2认同)
  • 如果您尝试下载 xml 文件,请添加以下行:`link.download = url;` 否则,xml 文件将显示在浏览器中。 (2认同)

Ale*_*ban 15

点击链接意味着更改window.location,那么怎么样

window.location = "mailto:test@test.com";
Run Code Online (Sandbox Code Playgroud)

  • 这并不会在所有浏览器中传递引用者信息,因此它并不等同于创建链接并单击它 (6认同)
  • 这并不能解决问题.这只会告诉你如何更改当前的窗口位置.它没有回答如何以编程方式创建元素,然后以编程方式单击它. (3认同)
  • @msutherl:那你怎么用jQuery解决呢? (2认同)

jBe*_*ger 11

要使它与jQuery一起使用,首先需要在jQuery对象中选择DOM元素.

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

注意[0]

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

  • 我认为这是在所有垃圾答案中最少的垃圾答案。我刚刚在代码中添加了[0],现在可以使用了。荒谬。该链接位于DOM中,jQuery可以找到该链接,但没有明显的原因,它不会单击它。没错,没事。感谢您对三个字符的修复。 (2认同)

Kev*_*Bui 8

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

它应该是:

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


wdm*_*wdm 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();
Run Code Online (Sandbox Code Playgroud)