正在转换JQuery对象

Transversing a JQuery object?

本文关键字:对象 JQuery 转换      更新时间:2023-09-26

我正在对元素列表进行排序,使用:

jQuery.fn.sort = function() {
   return this.pushStack( [].sort.apply( this, arguments ), []);
 };

$("ol li").sort("sortFunction").appendTo("ol");

问题出在sortFunction中。

function sortFunction($a, $b) {
  ...
}

基本上,我想要的是将$a和$b都视为jQuery对象,这样我就可以操作它们。

例如,在分拣功能内进行

$a.find("div#3 li").html();

这不起作用,因为$a和$b是本机javascript对象。

有什么帮助吗?

它们是原生DOM元素。您可以在其中一个调用jQuery函数来包装它,这样jQuery函数就可用了:

$($a).find(...)

您可以将本地JS对象转换为jquery对象,如下所示:

var jsObject = $(nativeobject);

这有帮助吗?

难道不能简单地对对象调用jQuery吗?

function sortFunction($a, $b) {
   var jQueryA = $($a);
}

只需将它们转换为排序函数中的jQuery对象:

$($a).find("div#3 li").html();

注意:不要称它们为$a,而只是a。带有美元符号的前缀通常表示一个jquery类型的变量,因此如果它不是