如何在Jquery中使用.click()单击超链接?

时间:2018-06-25 13:07:16

标签: javascript jquery userscripts

我正在尝试阅读一篇文章,但我无意按下超链接“下一页”并尝试运行下面的代码。

的代码是什么? 。按Enter键将找到“ x-hidden”类的超链接。 -focus”),然后单击它。

下面编写的代码可以通过在按下另一个网页的enterKey时单击一个按钮来工作,但是它不适用于超链接。我试图运行带有注释的代码,但没有一个代码解决了我的问题。

我要按的超链接的类别是“ .x-hidden-focus”

这是link to the article

$(document).keypress(function(event){
var which = (event.which ? event.which : event.keyCode);
if(which == '13'){
    //$(".x-hidden-focus")[0].click();
    $(".x-hidden-focus").click();
}
});
  

注意::我正在将此代码用作tampermonkey中的用户脚本(希望有帮助)。

4 个答案:

答案 0 :(得分:2)

您可以尝试简单地导航到您要单击的链接所描述的href:

document.location = $("a.x-hidden-focus").attr("href")

您的代码将成为:

$(document).keypress(function(event){
    var which = (event.which ? event.which : event.keyCode);
    if(which == '13'){
        document.location = $("a.x-hidden-focus").attr("href");
    }
});

根据您提供的文章,我们可以看到您要单击的按钮的html如下:

<a href="adding-a-controller" data-linktype="relative-path" class="x-hidden-focus">Next</a>

但是,如果您按下一步,我们可以看到现在有2个按钮:

<a href="getting-started" data-linktype="relative-path" class="x-hidden-focus">Previous</a>
<a href="adding-a-view" data-linktype="relative-path" class="x-hidden-focus">Next</a></p>

现在您的代码将是:

$(document).keypress(function(event){
    var which = (event.which ? event.which : event.keyCode);
    if(which == '13'){
        document.location = $("a.x-hidden-focus:contains('Next')").attr("href");
    }
});

编辑

我认为该类已经存在于元素上的假设是错误的。

由于仅在将链接悬停后才添加该类,因此您仅需要根据文本查找链接:

$("a:contains('Next')");

但是,通过使用容器类可以更加精确:

$("div.step-by-step").find("a:contains('Next')").attr("href")

答案 1 :(得分:1)

文档页面上的按钮是动态创建的,除非您单击/将其悬停,否则该类不存在。您需要通过

选择按钮
$('a:contains("Next")')

然后获取结果三个链接中的第一个,并获取其href

$('a:contains("Next")').eq(0).attr('href') 

现在您可以设置位置了

document.location = $('a:contains("Next")').eq(0).attr('href')

$(document).keypress(function(event){
    var which = (event.which ? event.which : event.keyCode);
    if(which == '13'){
        document.location = $('a:contains("Next")').eq(0).attr('href')
    }
});

答案 2 :(得分:0)

只需为以下单击事件添加侦听器:

$(document).on('keypress', function(e) {
  if (e.keyCode === 13) {
  $('.x-link').click(); 
}
 $('.x-link').on('click', function() {
    let url = $(this).attr('href')
    window.open(url)
  })
})

Here is example

答案 3 :(得分:0)

如@bambam所说,您必须首先选择链接:

   `$('a:contains("Next")')`

然后通过以下链接导航到链接所描述的href:

    $('a:contains("Next")').eq(0).attr('href')

您可以对上一个链接进行同样的操作。您的最终代码为:

$(document).keydown(function(event){
var which = (event.which ? event.which : event.keyCode);
if(which == '13'){
    document.location = $('a:contains("Next")').eq(0).attr('href')
}
else if(which == '16'){
    document.location = $('a:contains("Previous")').eq(0).attr('href')
}
});
  

当您按 Enter 键码:13 时,您将转到下一页。

     

当您按下 Shift 键代码:16 时,您将转到上一页。