jquery获取<li>标签下<a>标签的值,并添加class属性
本帖最后由 Myprettygirl 于 2013-06-09 09:45:50 编辑
<ul id=getcolor>
<li><a href="#" >11</a></li>
<li><a href="#" >22</a></li>
<li><a href="#" >33</a></li>
<li><a href="#" >44</a></li>
</ul>
我想用jquery获取当前点击的<a>标签的值,并且同时添加一个属性class。并且把别的<a>标签的属性移除
我的代码是这样的,已经获取到了<a>标签值,但是怎么添加属性都不对
var lis = $("#getcolor li");
for(i=0;i<lis.length;i++){
lis[i].onclick=function(){
alert(this.getElementsByTagName("a")[0].innerHTML);
//在这里添加属性和移除别的a标签属性,该怎么写???
}
}
另外this.getElementsByTagName("a")[0].innerHTML这句,在jquery中有没有方法代替?
------解决方案--------------------<script type="text/javascript">
//点击当前的a添加on类,并给其他a清除类名
$("#getcolor li a").click(function(){
$(this).addClass("on").parent().siblings().find("a").removeAttr("class");
})
</script>
------解决方案--------------------$("#getcolor li").click(function(){
$(this).children("a").addClass("class1").parent().siblings().find("a").removeClass("class1");
});
------解决方案--------------------
另外this.getElementsByTagName("a")[0].innerHTML这句,在jquery中可替换为$(this).find("a").eq(0).text()
------解决方案--------------------因为a是行内替换元素,对其宽度什么不太容易统一控制,还是操作li的样式比较好。
$(function() {
$("ul li").bind("click",function() {
$(this).addClass("selected").siblings().removeClass("selected");
});
});