gpt4 book ai didi

jquery - 从单独的 jQuery 对象创建 jQuery 对象集合

转载 作者:行者123 更新时间:2023-12-03 22:04:22 26 4
gpt4 key购买 nike

$.fn.sortByDepth = function() {
var ar = [];
var result = $([]);

$(this).each(function() {
ar.push({length: $(this).parents().length, elmt: $(this)});
});
ar.sort(function(a,b) {
return b.length - a.length;
});
for (var i=0; i<ar.length; i++) {
result.add(ar[i].elmt);
};
alert(result.length);
return result;
};

在此函数中,我尝试从单独的 jQuery 对象创建 jQuery 集合。我怎样才能做到这一点?

下面的代码不起作用:

result.add(ar[i].elmt);

jsfiddle:http://jsfiddle.net/hze3M/14/

最佳答案

.add()返回一个新的 jQuery 对象。更改此行:

result.add(ar[i].elmt);

对此:

result = result.add(ar[i].elmt);

但这仍然行不通

As of jQuery 1.4 the results from .add() will always be returned in document order (rather than a simple concatenation).

所以你只需使用一个普通的 JS 数组,push() 将排序后的元素放入其中,然后 $() 整个事情。

<小时/>

其他代码清理:

$.fn.sortByDepth = function() {
var ar = this.map(function() {
return {length: $(this).parents().length, elt: this}
}).get(),
result = [],
i = ar.length;


ar.sort(function(a, b) {
return a.length - b.length;
});

while (i--) {
result.push(ar[i].elt);
}
return $(result);
};


var x = $('input').sortByDepth().map(function() {
return this.id;
}).get().join(' - ');

$('#selection').text(x);

http://jsfiddle.net/mattball/AqUQH/ .

关于jquery - 从单独的 jQuery 对象创建 jQuery 对象集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5757150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com