如何遍历获得div里面所有a标签,并为每一个div添加自增的id和对应的事件。

以前写的a标签正被打开的单独样式的事件
function setTab(n) {
var tli = document.getElementById("ulinfo").getElementsByTagName("a");
for (i = 0; i < tli.length; i++) {
tli[i].className = i == n ? "current" : "";
}
}

代码如下:

$(document).ready(function(){

var i=0; // divid就是某个div的id,each是遍历这个div下的所有a标签 

$(".item a").each(function(){     

$(this).click(function(){         // 设置每个a标签的onclick事件,在这里你想干吗都可以         

var city = this.innerHTML;         

var citynum = this.id;         

$.ajax(

{ url:getRootPath()+'/help!changearea.action', 

data:{ "city":city, "citynum":citynum }, 

type:'post', dataType:'json', 

success:function(data){ 

alert("更新成功!"); 

}    });     }); }); });

扩展资料

所有主流浏览器都支持 <div> 标签。

<div> 可定义文档中的分区或节(division/section)。

<div> 标签可以把文档分割为独立的、不同的部分。它可以用作严格的组织工具,并且不使用任何格式与其关联。

如果用 id 或 class 来标记 <div>,那么该标签的作用会变得更加有效。

用法

<div> 是一个块级元素。这意味着它的内容自动地开始一个新行。实际上,换行是 <div> 固有的唯一格式表现。可以通过 <div> 的 class 或 id 应用额外的样式。

不必为每一个 <div> 都加上类或 id,虽然这样做也有一定的好处。

可以对同一个 <div> 元素应用 class 或 id 属性,但是更常见的情况是只应用其中一种。这两者的主要差异是,class 用于元素组(类似的元素,或者可以理解为某一类元素),而 id 用于标识单独的唯一的元素。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-25
用jQuery,非常简单:
获得div里面所有a标签

$("div a")

为每一个div添加自增的id和对应的事件。

var i=0;
$("div").each(function(){
this.id = i;
i++;
$(this).click(function(){
alert(this.id);
});
});追问

我想实现的是,遍历某个div里面的a标签,然后给这里面的a标签添加自增id,再依次给这些a标签按顺序添加onclick事件实现正被打开的a标签单独的样式。
onclick事件以前写过,不过是已经定好了id的手动添加的onclick事件。 我现在想网页运行就自动有这些属性和事件。谢谢了。

追答

你用不用jQuery?

追问

用,可以实现就行,只不过我没怎么学JQuery 写不出

追答

遍历某个div里面的a标签,然后给这里面的a标签添加自增id,再依次给这些a标签按顺序添加onclick事件实现正被打开的a标签单独的样式。
var i=0;
// divid就是某个div的id,each是遍历这个div下的所有a标签
$("#divid a").each(function(){
this.id = i;// 设置每个a标签的id为自增id
i++;

$(this).click(function(){
// 设置每个a标签的onclick事件,在这里你想干吗都可以
});
});

追问

这样子不会自动加载吧,并且我放在body的onload里面也没起到作用。怎么让他网页打开就有这效果呢。

追答

把这段代码加入(ready就是类似于onload功能):
$(document).ready(function(){
上面的代码
});

追问

恩,这样子可以了,只不过还有点问题就是,每一个点击过的都会是那个样式,我想实现最近点击的一个有单独的样式。

本回答被提问者采纳
第2个回答  2013-04-26
html部分:
<div class="tsm">
<a href="#">ts1</a><a href="#">ts2</a><a href="#">ts3</a><a href="#">ts4</a><a href="#">ts5</a><a href="#">ts6</a>
</div>

jquery部分
var len=$(".tsm a").length;
for(var m=0;m<len;m++){
var as=$(".tsm a")
as[m].id=m;
}
$(".tsm a").click(function (){
var n=$(".tsm a").index(this);
$(".tsm a").eq(n).css({color:"red"}).siblings("a").css({color:"blue"})

})追问

恩,这样子可以了,只不过还有点问题就是,每一个点击过的都会是那个样式,并不是我所想要的单一的。我想实现最近点击的一个有单独的样式。

追答

请叫我姐姐

追问

额,不好意思,姐姐编程这么厉害,可不可以教我啊。嘿嘿

追答

我的技术不行啊 也是在摸索

追问

额, 好吧 ,我才刚接触,比你更菜。情何以堪

第3个回答  2013-04-26
可以考虑先获取这个div 然后再取所有子节点然后判断是否为<a> 再进行操作。
当然要是用jQuery的话 就很简单了 $("#div的id a")取到div中的所有<a>了
相似回答