日期:2014-05-16  浏览次数:20429 次

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");
});

------解决方案--------------------
引用:
<script type="text/javascript">
    //点击当前的a添加on类,并给其他a清除类名
    $("#getcolor li a").click(function(){
        $(this).addClass("on").parent().siblings().find("a").removeAttr("class");
    })
</script>


另外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");
});
});