-4

我认为标题会有点混乱,但是,我想要的是创建一个$()具有特定上下文的新 jQuery 对象。

例如,我有我的 jQuery 对象,其上下文是window对象。而且,我想创建一个新的 jQuery 对象,新的上下文将是一个特定的div. 全局 jQuery 和新的 jQuery 会有不同的上下文,所以,我认为,用于 div 的 jQuery 无法访问该 div 之外的外部 HTML 元素。

问题是,我不知道如何创建一个新的 jQuery 对象。我正在阅读 jQuery 源代码,但有点令人困惑,我不确定如何创建具有特定上下文的新 jQuery 对象。我怎么能做到?

谢谢提前!

4

2 回答 2

0

我希望我已经正确理解了您的意思。有帮助吗——

var $new = $("#your-div-id");

//always use new jQuery object $new for your purpose
$new.find(selector);
于 2013-07-30T19:09:09.703 回答
0

我想你不明白 jQuery 在这里是如何工作的。jQuery 包装了一个选择器语句,如div#some-id-here,查找它,然后尝试在其上运行链式操作。默认值$实际上并没有您所想的上下文。

这是一个示例,假设两个 div 分别具有 idonetwo

jQuery(function($) {
    $('body').find('div').each(function(i) {
       alert($(this).attr('id')); 
    });
});

将工作。

jQuery(function($) {
    $.find('div').each(function(i) {
       alert($(this).attr('id')); 
    });
});

不会起作用,因为它并没有像您认为$的那样真正具有上下文。window它拥有的“上下文”是您告诉它选择的任何内容。

于 2013-07-30T19:31:21.917 回答