使用JavaScript或jQuery自动点击一个类名链接?

5

我想通过类名而不是ID名来自动点击一个链接。

然而,我的方法没有任何效果!

以下是我的做法:

    <script type="text/javascript">
$(document).ready(function(){
   document.getElementsByClassName("some-iclass").click();
});
</script> 

请问有人可以指导我吗?

编辑:

我已经使用了以下代码,但仍然不起作用:

<script type="text/javascript">
$(document).ready(function(){
  $(".myLink").click();
});
</script>

<a class="myLink" href="http://yahoo.com"> CLICK HERE NOW </a>

我在页面页眉中放置了以下内容:

    <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
   <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

编辑:

我尝试过这个方法,但仍然无法生效:

<script type="text/javascript">
$(document).ready(function(){
    $('.myLink').trigger('click');
    });
</script>

1
你无法点击它,因为你没有为链接标签定义点击方法。 - Tushar Gupta - curioustushar
很可能,链接上没有绑定点击事件。但是,如果有 href ,则可以点击它并跟随该链接。 - SidOfc
7个回答

16

请看这里:

<script type="text/javascript">
$(function(){
    $('.className').trigger('click');
});
</script>
希望能帮到您。 更新: 请尝试:
<script type="text/javascript">
$(function(){
    window.location.href = $('.className').attr('href');
});
</script>

经过你的编辑,我认为这就是你需要的。


我尝试使用你的代码,但它没有起作用!你能提供一个 jsfiddle 吗? - user2889836
这样做就可以了,伙计。太好了,感谢你。 - user2889836
还有一个问题,我如何使用相同的方法自动点击这样的图像:<img class="close" src="images/closey.gif" style="display: inline;"></img> - user2889836
非常感谢,它帮了我很多。 - Edwinfad

10
getElementsByClassName 不会返回一个元素,而是可能包含多个元素的 NodeList。
您可以这样做:
document.getElementsByClassName("some-iclass")[0].click();

或者如果你想要点击所有元素:

var list = document.getElementsByClassName("some-iclass");
for (var i=0; i<list.length; i++) list[i].click();

但是由于您正在使用jQuery,所以最好这样做会更简单

$('.some-iclass').click();

但仅当使用jQuery添加点击事件处理程序时才这样做(在其他情况下,例如在href属性的情况下,请使用标准DOM函数)。


1
由于与旧版浏览器(例如ie7+)兼容,因此对$('.some-iclass').click();进行+1。 - SidOfc
请问您能否提供一个可用的JSFiddle,因为我无法让它正常工作! - user2889836
Fiddle。你在Yahoo.com上的测试无法工作,因为Yahoo不希望被嵌入到框架中(跨域设置)。 - Denys Séguret

2
$(document).ready(function(){
    $(".some-iclass").trigger('click');
    });

2

用于自动点击按钮或链接

"<"body onload="document.getElementById('some-class')[0].click()" ">"

这个很有效...:)


2

使用jQuery很简单:$(".some-iclass").click();

如果有很多具有相同类名的元素,可以指定要操作的元素: 例如:$($(".some-iclass")[0]).click();


1
如果您想自动点击一个链接并且正在使用jQuery,您可以使用:
$('.yourClass').click();

如果你需要将这个链接作为多个链接集合中的一个链接,你可以这样做:

$($('.yourClass')[0]).click();

0是jQuery对象中元素的索引。

document.getElementsByClassName('yourClass');在旧版浏览器中无法工作,因此最好在这里使用jQuery以实现跨浏览器兼容性。


1

对我来说,我成功地让它以这种方式工作。我在5000毫秒内部署了自动点击,然后在1000毫秒后关闭了循环。然后只有1个自动点击。

<script> 
var myVar = setInterval(function ({document.getElementById("test").click();}, 500); 
setInterval(function () {clearInterval(myVar)}, 1000); 
</script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接