如何使用javascript点击链接

时间:2015-06-28 09:53:47

标签: javascript jquery html

我正在尝试点击html页面上的下一个链接,但遇到了困难。

我必须获取主div的elementbyclassname并单击div的第二个元素,这是我要点击的页面的HTML:

<div class="next-previous">
            <a href="http://website.net/560339/1/">Previous </a>				
	    <a href="http://website.net/560339/2/">Next</a>        
</div>

这是我迄今为止尝试过的Javascript。

var nextlink = document.getElementsByClassName('next-previous');
nextlink[0].click();

7 个答案:

答案 0 :(得分:5)

您点击div,这无效。您需要点击anextlink[0].click()替换为nextlink[0].lastElementChild.click(),它应该有效。

演示(用警报替换了链接目标):

var nextlink = document.getElementsByClassName('next-previous');
nextlink[0].lastElementChild.click();
<div class="next-previous">
    <a href="javascript:alert('Previous')">Previous </a>				
    <a href="javascript:alert('Next')">Next</a>        
</div>

答案 1 :(得分:2)

我很困惑。您的问题被标记为jQuery,但您使用的是Vanilla.JS。

总之:

的jQuery:

$("div.next-previous>a:nth-of-type(2)").click()
// clicks on second <a>

Vanilla.JS

document.getElementsByClassName('next-previous')[0].children[1].click()
//does the same
//gets an array of elements with the class 'next-previous', takes the first, then takes the second child and clicks on it

答案 2 :(得分:2)

或者,您可以使用CSS选择器进行过滤:

UserAuthenticator userAuthenticator = YourCDIUtil.getCurrentInstance(UserAuthenticator.class);
// ...

答案 3 :(得分:1)

您可以使用

$('.next-previous a').trigger('click');

甚至可以使用

$('.next-previous').find('a').trigger('click');

我发现<a>中有多个<div>代码,因此我建议对每个class代码应用唯一的id<a>。这样,在js / jquery中引用链接会更容易否则您将需要使用ElementChild属性。

答案 4 :(得分:1)

我的谦卑贡献,盲目拍摄,因为你的问题不明确:

&#13;
&#13;
var clsA = document.querySelectorAll('.cls > a');
clsA[0].addEventListener('click', function (ev) {
    var span;
    ev.preventDefault();
    span = document.createElement('span');
    span.textContent = ' allo';
    this.parentNode.appendChild(span);
});
&#13;
<div class="cls">
    <a href="#">here</a>
</div>
&#13;
&#13;
&#13;

答案 5 :(得分:1)

流动此博客文章。我认为它将帮助您理解为什么锚点不会被javascript点击。 http://blog.stchur.com/2010/01/15/programmatically-clicking-a-link-in-javascript/

答案 6 :(得分:0)

您需要使用:nth-child()来获得所需的孩子。喜欢

var nextlink = document.document.querySelectorAll('.next-previous:nth-child(2)').click();   // click the second link

var nextlink = document.document.querySelectorAll('.next-previous:nth-child(2)').click();
<div class="next-previous"> <a href="http://website.net/560339/1/>Previous</a>
 <a href="http://website.net/560339/2/">Next</a> 
</div>