有若干个<a></a>标签都有各自的样式如
<a class='aaa'>aaaa</a>
<a class='bbb'>bbbb</a>
<a class='ccc'>cccc</a>
<a class='ddd'>dddd</a>
....
点击aaaa 样式就更改class='zzz',再点击bbbb, aaaa的样式恢复为原来的class='aaa',而bbbb样式变为class='zzz'。 同理 ,点击任何一个a标签样式都变为class='zzz', 其他标签恢复为各自原来的样式。
请教大家用 js 如何实现 谢谢!
<a class='aaa'>aaaa</a>
<a class='bbb'>bbbb</a>
<a class='ccc'>cccc</a>
<a class='ddd'>dddd</a>
....
点击aaaa 样式就更改class='zzz',再点击bbbb, aaaa的样式恢复为原来的class='aaa',而bbbb样式变为class='zzz'。 同理 ,点击任何一个a标签样式都变为class='zzz', 其他标签恢复为各自原来的样式。
请教大家用 js 如何实现 谢谢!
var lastItem = {
object: '',
class: ''
};$('a').click(function() {
if (lastItem.object) {
lastItem.object.attr('class', lastItem.class);
}
lastItem.object = $(this);
lastItem.class = $(this).attr('class');
//设置当前点击的class
$(this).attr('class', 'zzz');
});方法2:
先改HTML结构,因为需要记住之前的选择:
<a class='aaa' originClass="aaa">aaaa</a>
<a class='bbb' originClass="bbb">bbbb</a>
<a class='ccc' originClass="bbb">cccc</a>
<a class='ddd' originClass="ccc">dddd</a>
JS代码:
$('a').click(function() {
//把其它的class还原
$('a').each(function() {
$(this).attr('class', $(this).attr('originClass'));
});
//设置当前点击的class
$(this).attr('class', 'zzz');
});
1、只考虑按顺序点击,还没考虑如果我在aaa身上不断点的情况,class早就没了。
2、添加不规范的属性,是很好解决问题,但html不是很乐意。<script src="http://code.jquery.com/jquery-latest.js"></script>
<a class='aaa'>aaaa</a>
<a class='bbb'>bbbb</a>
<a class='ccc'>cccc</a>
<a class='ddd'>dddd</a>
<script>
$(function(){
var cls=[],i=-1;
$("a").each(function(i,item){
cls[i]=$(this).attr("class");
});
$("a").click(function(){
if(i>=0)$("a:eq("+i+")").attr("class",cls[i]);
i=$(this).index()-1;
$(this).attr("class","zzz");
});
});
</script>
<style type="text/css">
.aaa{color:#FF0000}
.bbb{color:#00FF00}
.ccc{color:#0000FF}
.zzz{color:#FF00FF}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/JavaScript">
$(function(){
$("a").click(function(){
$("a").removeClass("zzz");
$(this).addClass("zzz");
})
})
</script>
<a class="aaa">aaaa</a>
<a class="bbb">bbbb</a>
<a class="ccc">cccc</a>
$("a").removeClass("zzz");==》$("a.zzz").removeClass("zzz");
object: '',
class: ''
};$('a').click(function() {
if ($(this).attr('class') === 'zzz') {
return;
}
if (lastItem.object) {
lastItem.object.attr('class', lastItem.class);
}
lastItem.object = $(this);
lastItem.class = $(this).attr('class');console.log(this);console.log($(this));console.log(this.getAttribute('class'));
//设置当前点击的class
$(this).attr('class', 'zzz');