触发单击跨度

时间:2014-04-20 05:27:13

标签: javascript

我想自动点击 SPAN.show-more 。当我点击它显示隐藏的文字。它的ID是一个随机数,如:SPAN#yui_3_9_1_10_1397969703476_624.show-more 我用的是油脂。 该页面是: https://espanol.answers.yahoo.com/question/index?qid=20091125151524AAvxaLo

我的错误代码是:

 var i,
 list = document.querySelectorAll(".show-more")
 for (i = 0; i < list.length; ++i) 
 { list[i].click();
 }

也许我需要等到页面满载?我需要延迟吗?

4 个答案:

答案 0 :(得分:1)

您可以简单地调用onclick()这样的事件:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Click</title>
</head>
<body>

<span class="show-none">hello</span>
<span onclick="this.style.backgroundColor = '#f47121'" class="show-more">hello</span>
<span onclick="this.style.backgroundColor = '#128239'" class="show-more">hello</span>

<script type="text/javascript" charset="utf-8">
  var i, list = document.getElementsByClassName("show-more");
  for (i = 0; i < list.length; ++i)
   {
     list[i].onclick();
   }
</script>
</body>
</html>

答案 1 :(得分:1)

你试过这个吗?使用onclick()方法

var i, list = document.querySelectorAll(".show-more")
for (i = 0; i < list.length; ++i) 
{
  list[i].onclick();
}

祝你好运

答案 2 :(得分:0)

没有内置的跨浏览器功能或方法来导致点击。如果需要,我可以找到最好的跨浏览器解决方案之一here。通过,如果你试图让一个函数触发它,最好只调用该函数。

根据Luxelin的建议,jQuery将是最简单的选择。使用jQuery时$(element).trigger('click')将触发元素上的跨浏览器单击事件。

答案 3 :(得分:0)

虽然有一种方法可以使用:

 element.onclick = function(){ .. };

 if( something )
      element.onclick(); // call the handler

<强> DEMO