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>
展开
 我来答
yugi111
2015-09-26 · TA获得超过8.1万个赞
知道大有可为答主
回答量:5.1万
采纳率:70%
帮助的人:1.3亿
展开全部
$("#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标签?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式