有没有一种方法可以修改jQuery对象本身
Is there a way to modify a jQuery object itself?
在jquery对象上使用.add
、.remove
等函数时,jquery对象本身不会被修改,结果会被返回的新jquery对象捕获。
有没有办法修改对象本身?
我需要它,这样我就可以用引用传递的jQuery编写一个函数,比如这样的:
function DoThings(refJQuery) {
refJQuery.find(...).remove(...);
if (refJQuery.length > 0) {
DoThings(refJQuery);
}
}
重要提示:此代码示例只是对"通过引用传递的值"的用途/用法的提醒。
不,jQuery集合被设计为不可变的(您可以更改它们的属性,但您不应该这样做,它们是实现的一部分,而不是API)
当你想把一个不可变的对象传递给一个函数并对其进行修改时(假设获取返回值是不可行的),合成通常是一种方法。
通常,您应该使用自定义对象。但如果你愿意,你也可以设计一个通用的装饰器:
function MutableJQueryObject(jqo){
this.jqo = jqo;
}
['add','find','filter',].forEach(function(k){
MutableJQueryObject.prototype[k] = function(){
this.jqo = $.fn[k].apply(this.jqo, arguments);
}
});
['html','remove'].forEach(function(k){
MutableJQueryObject.prototype[k] = function(){
return this.jqo[k].apply(this.jqo, arguments);
}
});
$.fn.mutable = function(){
return new MutableJQueryObject(this);
}
因此,您将构建一个可变对象:
var $e = $('body').mutable();
console.log($e.html()); // html of the body
(function($c){
$c.find('div'); // change the object
})($e);
console.log($e.html()); // html of the div
相关文章:
- 修改jQuery脚本,让我选择页面入口的选择列表的默认值
- 有没有一种方法可以修改jQuery对象本身
- 修改 jQuery 和 PHP 代码,将 ID 和文本值拉取到 OPTION 元素中
- 需要修改 jQuery
- 修改 JQuery 对象
- 修改 jQuery 自动完成,不要在 Enter 上急切提交
- 正在修改jQuery验证消息
- 修改jQuery进度条's基于Gridview列的颜色
- 修改jQuery javascript以触发:checked而不是:hover--image swap
- 如何在ASP.net网格视图中修改jQuery进度条颜色
- 如何动态修改jQuery多选下拉菜单的背景颜色
- 修改Jquery以展开不同位置的每张照片
- 修改jquery以在单击时不打开图像
- 修改 jquery $.get 函数响应
- 修改jQuery$函数以支持遗留代码
- 修改jQuery滑块以获得更大的控制:添加可点击的预览缩略图,该缩略图指向相应的幻灯片
- 如何修改jquery对话框按钮
- 修改jquery脚本来使用它.parent在appendTo()函数中
- 如何:修改jquery.自动补全正则表达式以显示从给定输入开始的结果
- 修改Jquery. fancybox-1.3.4.js文件,重写_draw函数