js循环执行函数

allhack 2010-08-13 02:41:25
假设,有这么一个HTML

<a href="javascript:void(0);" onclick="fuck('11111',this);return false;">链接1</a>
<a href="javascript:void(0);" onclick="fuck('22222',this);return false;">链接2</a>
<a href="javascript:void(0);" onclick="fuck('000000',this);return false;">链接3</a>
<a href="javascript:void(0);" onclick="fuck('899',this);return false;">链接4</a>
..........
.......
<a href="javascript:void(0);" onclick="fuck('47858',this);return false;">链接N</a>



可以看到,这个页面里有N个链接,每一个链接的onclick属性都执行了一次APP()函数, 而且每一次fuck函数的第一个参数都是不同的数字 fuck('数字',this)...

那么,我需要使用JS代码来使所有的fuck函数自动执行,也就是不需要点击链接了......

本人js太烂,所以请教各位高手,望不吝赐教.....请贴出代码,谢谢


...全文
667 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
unicode 2010-08-13
  • 打赏
  • 举报
回复
可以判断下onclick是否有效
if (all[i].onclick)
{
all[i].onclick();
}
Crazywa 2010-08-13
  • 打赏
  • 举报
回复
我的直接被无视么?
难道还要我提取出来?
function e(a,f){
for(i=0,j=a.length;i<j;i++){
f.call(a[i],i);
}
}
arr = document.getElementsByTagName("a");
e(arr,function(n){
this.onclick = (function(i){
return function(){
alert("你点击了第" + i +"个链接");
return false;
};
})(n)
});
allhack 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 unicode 的回复:]

非jquery版本
JScript code

var all = document.getElementsByTagName("a");
for (var i = 0; i < all.length; i++)
{
all[i].onclick();
}
[/Quote]谢谢,但是遇到没有 onclick的链接怎么办?
infer_you 2010-08-13
  • 打赏
  • 举报
回复
不过这样写的话会把页面中所有<a>标签下的都取出来
infer_you 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 unicode 的回复:]
非jquery版本

JScript code

var all = document.getElementsByTagName("a");
for (var i = 0; i < all.length; i++)
{
all[i].onclick();
}
[/Quote]

我也觉得这样可以实现
imaf 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 unicode 的回复:]

非jquery版本
JScript code

var all = document.getElementsByTagName("a");
for (var i = 0; i < all.length; i++)
{
all[i].onclick();
}
[/Quote]

这样写貌似在事件处理函数里不能取到Dom标准的事件对象,

在IE下的事件对象里的值也有偏差,比如一个click事件,window.event对象的clientX属性是鼠标的位置,并不是鼠标点击那个元素的位置。
caochen1985 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 unicode 的回复:]
非jquery版本

JScript code

var all = document.getElementsByTagName("a");
for (var i = 0; i < all.length; i++)
{
all[i].onclick();
}
[/Quote]

非Jquery的这么写就行了
huangjianfei 2010-08-13
  • 打赏
  • 举报
回复
6楼正解!如果不用jquery而要实现3楼那个功能就是这样!
Crazywa 2010-08-13
  • 打赏
  • 举报
回复
汗、
发错了。。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>test</title>
<style>
#tb th{
background-color:#ccc;
}
#tb .liang{
background-color:yellow;
}
#tb .trOver{
background-color:red;
}
</style>
<script>
window.onload =function (){
function e(a,f){
for(i=0,j=a.length;i<j;i++){
f.call(a[i],i);
}
}
t = document.getElementById("tb"),
r = t.getElementsByTagName("tr"),
c = t.getElementsByTagName("td");
e(c,function(n){
this.onclick = function(){
idx = this.cellIndex;
e(c,function(){
this.style.backgroundColor="";
});
e(r,function(b){
if(b!=0&&idx!=0&&this.cells[idx])this.cells[idx].style.backgroundColor="green";
});
}
});
e(r,function(n){
l = this.childNodes.length;
if(n!=0 && l>1 && n%2==0)this.className="liang";
this.onmouseover = function(){
if(n!=0)this.className += " trOver";
};
this.onmouseout = function(){
if(n!=0)this.className = this.className.replace(" trOver","");
};
})
}
</script>
</head>
<body>
<table id="tb" cellspacing="0" cellpadding="0" border="1">
<tr>
<td> </td>
<th>Title</th>
<th>Title</th>
<th>Title</th>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th colspan="4">分类啊</th>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th colspan="4">分类啊</th>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
<tr>
<th>Title</th>
<td>Data</td>
<td>Data</td>
<td>Data</td>
</tr>
</table>
</body>
</html>
里面的 function e 就是循环函数
unicode 2010-08-13
  • 打赏
  • 举报
回复
非jquery版本

var all = document.getElementsByTagName("a");
for (var i = 0; i < all.length; i++)
{
all[i].onclick();
}
Crazywa 2010-08-13
  • 打赏
  • 举报
回复
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
li{ display:block; background-color:#CCC; margin-top:2px; cursor:pointer;}
</style>
<script>
window.onload = function(){
var lis = document.getElementById("ul").getElementsByTagName("li");
for(var i = 0,j=lis.length;i<j;i++){
lis[i].onclick = (function(n){
return function(){
alert("点击的是第"+ n +"个");
}
})(i)
};
}
</script>
</head>

<body>
<ul id="ul">
<li>0</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</body>
</html>


怎么没发成功?
Crazywa 2010-08-13
  • 打赏
  • 举报
回复

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
li{ display:block; background-color:#CCC; margin-top:2px; cursor:pointer;}
</style>
<script>
window.onload = function(){
var lis = document.getElementById("ul").getElementsByTagName("li");
for(var i = 0,j=lis.length;i<j;i++){
lis[i].onclick = (function(n){
return function(){
alert("点击的是第"+ n +"个");
}
})(i)
};
}
</script>
</head>

<body>
<ul id="ul">
<li>0</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</body>
</html>

allhack 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 caochen1985 的回复:]

可以用Jquery
var length=$('a').length;
for(var i=0;i<length;i++){
$('a').eq(i).click();
}
[/Quote]谢谢你的回答,这个是需要调用jquery.js的是吧? 但如果不使用jquery呢?
caochen1985 2010-08-13
  • 打赏
  • 举报
回复
可以用Jquery
var length=$('a').length;
for(var i=0;i<length;i++){
$('a').eq(i).click();
}
allhack 2010-08-13
  • 打赏
  • 举报
回复
写错了,上文所指的APP 就是fuck函数,呵呵

87,922

社区成员

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

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