jquery $(this)的问题
求教$(this)就提含义,下面代码有3个$(this),分不清楚都是指什么,是3个都是一样的吗<divid="val"><tdclass="class"><iclass...
求教$(this)就提含义,下面代码有3个$(this),分不清楚都是指什么,是3个都是一样的吗
<div id="val">
<td class="class">
<i class="a" rel="3"></i>
<i class="a" rel="2"></i>
<i class="a" rel="1"></i>
<i class="a" rel="0"></i>
</td>
</div>
<script type="text/javascript">
$("#val").on('click', '.class>i', function () {
$(this).parent().children("i").each(function () {
$(this).removeClass('active');
});
$(this).addClass('active');
}
</script> 展开
<div id="val">
<td class="class">
<i class="a" rel="3"></i>
<i class="a" rel="2"></i>
<i class="a" rel="1"></i>
<i class="a" rel="0"></i>
</td>
</div>
<script type="text/javascript">
$("#val").on('click', '.class>i', function () {
$(this).parent().children("i").each(function () {
$(this).removeClass('active');
});
$(this).addClass('active');
}
</script> 展开
展开全部
$("#val").delegate('click', '.class>i', function() {
// 这个就是当前点击的这个jquery对象了
// $(".class>i") 这个当前的对象
//写成me,就清爽了许多,懒惰是程序员的美德
//正是因为你的懒惰,别人看的更加舒服了,自己也没有那么累了
var me = $(this);
//这个的对象就不是上面的了,让小白们产生歧义了,简直就是效率更低了
//jquery的选择器本身就返回了一个集合,然而这里还来each循环,真是混球,哪个写的?!
//me.parent().children("i").each(function() {
// me.removeClass('active');
//});
me.addClass("active").siblings("i").removeClass("active");
//下面如果还有其他操作,继续使用me,如果有必要的话
}
});
-------------
最简单的写法
$("#val").delegate('click', '.class>i', function() {
$(this).addClass("active").siblings("i.active").removeClass("active");
}
});
追问
谢谢大神!继续问下me 到底是我点击的哪一个i标签还是class下面4个i标签?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询