我正在尝试点击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();
答案 0 :(得分:5)
您点击div
,这无效。您需要点击a
将nextlink[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。
总之:
$("div.next-previous>a:nth-of-type(2)").click()
// clicks on second <a>
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)
我的谦卑贡献,盲目拍摄,因为你的问题不明确:
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;
答案 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>