附加到$()的jQuery方法

附加到$()的jQuery方法,jquery,Jquery,我必须显示两个数据集的内容。一个是xml,另一个是我放在结构/对象数组中的。我想以同样的方式处理它们。我做到了: { if( FileType == FILE_TYPE_XML ) { $( XmlLogData ).find( "LogRecord" ).each( function() { $.fn.ProcessLogTree_( $( this ) ); }); } if( FileT

我必须显示两个数据集的内容。一个是xml,另一个是我放在结构/对象数组中的。我想以同样的方式处理它们。我做到了:

{
    if( FileType == FILE_TYPE_XML )
    {
        $( XmlLogData ).find( "LogRecord" ).each( function()
        {
            $.fn.ProcessLogTree_( $( this ) );
        });
    }
    if( FileType == FILE_TYPE_JSN )
    {
        $( SerialLogData ).each( function()
        {

            LogElemTemp = this; // naive way
            LogElemTempWrap = $( LogElemTemp ); // naive way
            LogElemTempWrap.text = function() { return LogElemTemp.text(); }; // naive way
            LogElemTempWrap.parent = function() { return $( LogElemTemp.Parent() ); }; // naive way

            $.fn.ProcessLogTree_( $(this) );
            //$.fn.ProcessLogTree_( LogElemTempWrap ); // naive way
        });
    }
}
$.fn.ProcessLogTree_ = function( LogElemWrap )
{
    if( FileType == FILE_TYPE_JSN ) LogElemWrapUp = ???;
    if( FileType == FILE_TYPE_XML ) LogElemWrapUp = LogElemWrap.parent();
    NewLine = LogElemWrap.text();
    ...
我从我找到的一个示例中提取了xml处理部分,效果很好。问题是,在xml的情况下,parents()和text()似乎附加到$(this),如ProcessLogTree所示?!怎么做到的?! 如果是成员数据,我可以写

var x = LogElemWrap.attr( "Desc" );
对于这两个数据集(xml和另一个),但实际上不适用于成员方法。我甚至不知道,如何调用用$()包装的方法?我试过了

但不起作用,实际上不是我想要的,因为我希望ProcessLogTree不依赖于任何数据集类型。无论如何,我想知道怎么做

正如我所展示的,我最天真的方法是在调用ProcessLogTree\之前附加一些包装器。这适用于text()之类的函数,但在parent()的情况下,问题是除了父函数没有parent()方法(因此我可以从父函数上升到父函数)之外,几乎可以工作,因为parent()函数实际上没有附加到原始数据集。因此:

  • 如何调用用$()包装的对象的成员方法
  • 如何将方法附加到$()并将执行重定向到包装对象的相应方法

使用
jQuery.fn.someMethod=function…
将帮助您将一个方法附加到
$()
并将其用作
$()。someMethod
@Neville-Nazerane在JSN“if”部分I添加了$(SerialLogData_NoRoot)。每个(function(){let LogElem=this;jQuery.fn.text=function(){return LogElem.text();};LogTree=ProcessLogTree_u($(this),LogTreeContainer);});启动足够多,XmlLogData也会受到影响。
(LogElemWrap.attr( "text" ))()()