创建新的jQuery全局对象

Create new jQuery global object

本文关键字:全局 对象 jQuery 创建      更新时间:2023-09-26

我认为标题会有点令人困惑,但我想要的是创建一个新的jQuery对象$(),带有特定的上下文。

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

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

感谢您的预付款!

我希望我能正确理解你的话。它有帮助吗?

var $new = $("#your-div-id");
//always use new jQuery object $new for your purpose
$new.find(selector);

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

这里有一个例子,假设两个div分别具有ID onetwo

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

会起作用的。

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

不会起作用,因为$并不像您想象的那样真正具有window上下文。它所拥有的"上下文"就是你告诉它要选择的内容。