日期:2014-05-16 浏览次数:20368 次
$(".collectTabView").click(function(){ //在这里面,使用$(this)可获取每一个<li class="collectTabView"></li>的DOM结构 var child=$(this).children(); if(child.hasClass('current')){ child.replaceWith('<a href="#">'+child.html()+'</a>'); /* //下面的方式是使用jQuery操作DOM的方式 var links=$('<a>').attr("href","#").text(child.html()); $(this).empty(); $(this).append(links); */ }else{ child.replaceWith('<span class="current">'+child.html()+'</span>'); /* //下面的方式是使用jQuery操作DOM的方式 var span=$('<span>').addClass('current').html(child.html()); $(this).empty(); $(this).append(span); */ } })
------解决方案--------------------
child是一个jQuery对象。之前有和你说过,不要把jQuery和原生的搞混了
jQuery筛选子元素,可以用child.eq(index)来进行
再一个,jQuery的each()方法可以用来遍历所有元素
到现在还没搞明白你到底是想干嘛
你将事件触发放在li的click事件中,如果是想批量替换6个li中。span换成a,a换成span
那么,你这li中的a永远无法生效,你这是要干嘛呢??
<script type="text/javascript"> $(function(){ $(".collectTabView").click(function(){ $(this).parent().find('li').each(function(){ var child=$(this).children(); if(child.hasClass('current')){ child.replaceWith('<a href="#">'+child.html()+'</a>'); }else{ child.replaceWith('<span class="current">'+child.html()+'</span>'); } }) }) }) </script> <div> <ul> <li class="collectTabView"><span class="current">全部收藏1</span></li> <li class="collectTabView"><a href="#">特别关注</a></li> <li class="collectTabView"><span class="current">全部收藏2</span></li> <li class="collectTabView"><a href="#">特别关注</a></li> <li class="collectTabView"><span class="current">全部收藏3</span