日期:2014-05-16 浏览次数:20436 次
$(".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