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