JS脚本点击

qq_25604135 2017-07-19 01:36:36
var openactiveposter = document.getElementsByClassName('open active_poster')[0];


window.setTimeout(function () { fireEvent(document.getElementsByClassName('open active_poster')[0], 'click'); }, 3000);

我不是太会 都是看着网上的例子做的

现在这个var openactiveposter = document.getElementsByClassName('open active_poster')[0];
意思('open active_poster') 被被标记了 方便后边点击吗 0 是什么意思呢

怎么判断是否出现这个'open active_poster'

最后 我能成功 页面上出现就点击

但是window.setTimeout(function () { fireEvent(document.getElementsByClassName('open active_poster')[0], 'click'); }, 3000);
是不是延迟点击 然后循环点击

类似循环的点击还有什么语句吗

0基础 谢谢教我
...全文
277 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2017-07-19
  • 打赏
  • 举报
回复
引用 5 楼 qq_25604135 的回复:
[quote=引用 2 楼 qq_25604135 的回复:] [quote=引用 1 楼 jslang 的回复:] var openactiveposter = document.getElementsByClassName('open active_poster')[0]; 是获取class属性中同时有open和active_poster的元素。可以获取多个,所以返回的是数组。[0]是取数组中的第一个元素。 setTimeout只是延迟执行一次。 不是循环执行 setInterval才是循环执行
我现在有三个想点击的 var openactiveposter = document.getElementsByClassName('open active_poster')[0]; var treasureMapPopupcancel = document.getElementsByClassName('treasureMapPopup-cancel')[0]; 前两个好像可以 var treasureMapPopup-action-button highlight = document.getElementsByClassName('treasureMapPopup-action-button highlight')[0]; 这个后面的0 可以不可以变成其他的数字 ? 测试的好像不行 然后我想循环点击的话是不是 window.setInterval(function () { fireEvent(document.getElementsByClassName('open active_poster')[0], 'click'); }, 3000); [/quote] 前面2个 我测试都行了 现在碰到最后个按键 这个是我要点击的 <a href="#" class="treasureMapPopup-action-button highlight" onclick="app.views.TreasureMapView.map.discard(this); return false;">Leave</a> 但是因为其他地方也有 类似的 class比如有个<a class="treasureMapPopup-action-button highlight" href="#" onclick="app.views.TreasureMapView.map.toggleTabState('upgradeMap'); return false;">UPGRADE</a> 然后我想点击leave 怎么写啊 论坛上告诉我 var poster=document.getElementsByClassName('treasureMapPopup-action-button') for(var i=0;i<poster.length;i++)if(poster[i].innerHTML=='Leave'){poster[i].onclick();break;} 但是我直接复制进JS 好像不行 应该怎么写 [/quote] 代码测试正常啊

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<title> 页面名称 </title>
<style type="text/css">
#div {

}
</style>
</head>
<body>

<a href="#" class="treasureMapPopup-action-button highlight" onclick="alert(555); return false;">Leave</a>

<a class="treasureMapPopup-action-button highlight" href="#" onclick="app.views.TreasureMapView.map.toggleTabState('upgradeMap'); return false;">UPGRADE</a>


<script type="text/javascript">
var poster=document.getElementsByClassName('treasureMapPopup-action-button')
for(var i=0;i<poster.length;i++)if(poster[i].innerHTML=='Leave'){poster[i].onclick();break;}

</script>
</body>
</html>
qq_25604135 2017-07-19
  • 打赏
  • 举报
回复
引用 2 楼 qq_25604135 的回复:
[quote=引用 1 楼 jslang 的回复:] var openactiveposter = document.getElementsByClassName('open active_poster')[0]; 是获取class属性中同时有open和active_poster的元素。可以获取多个,所以返回的是数组。[0]是取数组中的第一个元素。 setTimeout只是延迟执行一次。 不是循环执行 setInterval才是循环执行
我现在有三个想点击的 var openactiveposter = document.getElementsByClassName('open active_poster')[0]; var treasureMapPopupcancel = document.getElementsByClassName('treasureMapPopup-cancel')[0]; 前两个好像可以 var treasureMapPopup-action-button highlight = document.getElementsByClassName('treasureMapPopup-action-button highlight')[0]; 这个后面的0 可以不可以变成其他的数字 ? 测试的好像不行 然后我想循环点击的话是不是 window.setInterval(function () { fireEvent(document.getElementsByClassName('open active_poster')[0], 'click'); }, 3000); [/quote] 前面2个 我测试都行了 现在碰到最后个按键 这个是我要点击的 <a href="#" class="treasureMapPopup-action-button highlight" onclick="app.views.TreasureMapView.map.discard(this); return false;">Leave</a> 但是因为其他地方也有 类似的 class比如有个<a class="treasureMapPopup-action-button highlight" href="#" onclick="app.views.TreasureMapView.map.toggleTabState('upgradeMap'); return false;">UPGRADE</a> 然后我想点击leave 怎么写啊 论坛上告诉我 var poster=document.getElementsByClassName('treasureMapPopup-action-button') for(var i=0;i<poster.length;i++)if(poster[i].innerHTML=='Leave'){poster[i].onclick();break;} 但是我直接复制进JS 好像不行 应该怎么写
天际的海浪 2017-07-19
  • 打赏
  • 举报
回复
建议你先学下js基础的内容,不然你的问题会越来越多的
天际的海浪 2017-07-19
  • 打赏
  • 举报
回复
var 与 = 之间是变量名,变量名中不能有-和空格的。 你数组中只有一个元素,当然只能取0下标了、如果数组中有多个元素就可以用1或2等下标。
qq_25604135 2017-07-19
  • 打赏
  • 举报
回复
引用 1 楼 jslang 的回复:
var openactiveposter = document.getElementsByClassName('open active_poster')[0]; 是获取class属性中同时有open和active_poster的元素。可以获取多个,所以返回的是数组。[0]是取数组中的第一个元素。 setTimeout只是延迟执行一次。 不是循环执行 setInterval才是循环执行
我现在有三个想点击的 var openactiveposter = document.getElementsByClassName('open active_poster')[0]; var treasureMapPopupcancel = document.getElementsByClassName('treasureMapPopup-cancel')[0]; 前两个好像可以 var treasureMapPopup-action-button highlight = document.getElementsByClassName('treasureMapPopup-action-button highlight')[0]; 这个后面的0 可以不可以变成其他的数字 ? 测试的好像不行 然后我想循环点击的话是不是 window.setInterval(function () { fireEvent(document.getElementsByClassName('open active_poster')[0], 'click'); }, 3000);
天际的海浪 2017-07-19
  • 打赏
  • 举报
回复
var openactiveposter = document.getElementsByClassName('open active_poster')[0]; 是获取class属性中同时有open和active_poster的元素。可以获取多个,所以返回的是数组。[0]是取数组中的第一个元素。 setTimeout只是延迟执行一次。 不是循环执行 setInterval才是循环执行

87,990

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧