【发布时间】:2017-01-11 15:37:55
【问题描述】:
在使用jQuery的时候,缓存很重要,好像忘记了相关的原理。当我缓存某些东西时,如何在函数on() 中重新使用它?
例子:
var paginationDemo = $("#pagination-demo");
paginationDemo.on('click', function() {
var index = $('#pagination-demo').find('.active > a')[0].innerHTML;
...
});
正如你在这里看到的,我再次调用 jQuery 来查找 id,真丢脸!有没有办法用this 做到这一点?
var index = this.find('.active > a')[0].innerHTML;
或:
var index = $(this).find('.active > a')[0].innerHTML;
但我不确定this 会在on() 的主体中包含什么。这样做的正确方法是什么?
【问题讨论】:
-
this 是 DOM 对象,$(this) 是 jQuery 对象,所以 this.id 和 $(this).find - 但为什么不是
$(this).find('.active > a').html();? -
那么
this在未命名函数体内会是什么(我们如何调用这些函数?:))?直觉上它将是paginationDemo变量?所以你的意思是this.id.find()将等同于$(this).find()。 -
没有。 this.id 和 $(this).attr("id)" 是等价的。忽略这个例子
标签: javascript jquery html function caching