【发布时间】:2013-08-22 12:56:07
【问题描述】:
你肯定看过 jquery。你知道 jquery 允许你像这样链接方法吗:
$('.elements').css({color:'red'}).etc().etc()...
但是,如果您注意到,该函数会返回一个对象数组(?):
$(document).ready(function(){
var $elements = $('.c').css({color:'red'});
console.log($elements);
});
(Example, see console to see the result)
$ 函数也可以:
$(document).ready(function(){
var $elements = $('.c');
console.log($elements);
});
(Example, see console to see the result)
两者都返回一个数组,然后可以继续链接。这怎么可能?当它不只返回this(或对象本身)时,为什么可以继续链接?
我读了this post,他可以成功地添加加号,但那是对现有字符串的,因为他是字符串对象的原型。
有什么办法可以存档吗?
更新
我知道它返回一个 jquery 对象,但我如何才能返回包含值数组的对象并与返回的值保持链接。
更新 2
我要归档的内容
我有这个类,我想要一个方法在链接结束时返回我的对象数组
var elements = Enumerable(anArray).Where(function(elements){ return elements != 1 })
这里chainig已经结束,所以它必须返回满足条件的元素,但我想保留chaingin,我只需要这样做:
elements = elements.Where(function(elements){ return elements == 1}).Take(3);
并根据我的需要继续链接。
【问题讨论】:
-
我不太确定你的目标是什么,或者你到底要问什么。此外,它们并没有真正返回一个数组,而是返回一个 jquery 对象,其中包含一个数组。
-
我在看什么,如何返回我的对象数组以及值是什么并继续链接。我只知道通过返回这个来实现它,而不是一个数组
-
为什么?您可以轻松地从 jquery 对象中过滤元素,甚至可以提取特定元素......并循环遍历每个获取值。我认为您需要展示您的最终目标,我们才能进一步帮助您。
-
@smerny 请看我的更新 2
-
也许我仍然对您要做什么感到困惑,但似乎可以通过
filter()和slice()的组合来完成? jsfiddle.net/5Nv4X/2
标签: javascript jquery chaining