我正在尝试为扩展程序编写一个函数,该扩展程序可以在特定div中找到链接并单击它。该链接没有id或类名,所以我一直在寻找类似于CSS选择器的东西,但是JS没有使用'$'或'jQuery',因为这需要我嵌入带有扩展名的jquery库。
div有一个类名,然后是一个链接,所以这是我到目前为止的代码 -
function COut() {
var a = document.getElementsByClassName('bottom_row').getElementsByTagName('a');
for (var i = 0; i < a.length; i++) {
var elem = a[i],
elem.click();
}
}
这是div和链接的标记 -
<div class="bottom_row">
<a onclick="miniAddToCart.closeMiniAddToCart({cmConversionEvent: 'Checkout'})" href="http://www.domain.com/shoppingcart/default.cfm?checkout=1&"><img src="http://www.domain.com/images/eb/minicart/checkout.gif" alt="Checkout"></a>
</div>
任何想法我做错了什么?
答案 0 :(得分:0)
getElementsByClassName('bottom_row').getElementsByTagName('a');
getElementsByClassName返回一个集合,而不是单个项目
getElementsByClassName('bottom_row')[0].getElementsByTagName('a');
^^^
如果className中可以有多个项目,则需要循环。如果您支持现代浏览器,则可以查看querySelectorAll
最后点击链接并不像调用click()
那么容易How can I simulate a click to an anchor tag?
如果你想让它对网址做,你可能最好只设置window.location.href
答案 1 :(得分:0)
如果有一个A标签,我不会为此做出循环。相反,你可以这样做:
function COut() {
var a = document.getElementsByClassName('bottom_row')[0].getElementsByTagName('a')[0];
if(a){
a.click();
}
}