在jQuery选择器中使用$(this)和context

时间:2011-01-27 00:30:39

标签: javascript jquery jquery-selectors

我的javascript看起来像这样:

$(document).ready(function() {
    $("a:not(.noajax)", $('#header, #content')).live('click', function(event) {
        ajaxCall($(this).attr("href"));
        event.preventDefault();
    });
)};

$(this)选择器似乎没有得到'a'对象,但是没有选择器上下文它工作正常。我在这里做错了什么?


看起来jQuery将带有上下文的选择器转换为:

$(context).find(selector)

所以我认为我的$(this)指的是上下文而不是selctor。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

上下文应该是元素或字符串,而不是jQuery对象。此外,由于ID是唯一的,因此您只需要一个上下文。

$("a:not(.noajax)", '#header').live('click', function(event) {
    ajaxCall($(this).attr("href"));
    event.preventDefault();
});

<强> See a live example.