从另一个未知的jQuery对象中选择对象的最佳方法

Yos*_*osi 8 performance jquery cross-browser jquery-selectors jquery-traversing

假设我有一个存储在名为obj的变量中的jQuery对象/集合,该变量应该包含一个名为target的id的DOM元素.

我事先不知道目标将是一个孩子OBJ,即:

obj = $('<div id="parent"><div id="target"></div></div>');
Run Code Online (Sandbox Code Playgroud)

或者如果obj 等于 目标,即:

obj = $('<div id="target"></div>');
Run Code Online (Sandbox Code Playgroud)

或者如果targetobj中顶级元素,即:

obj = $('<div id="target"/><span id="other"/>');
Run Code Online (Sandbox Code Playgroud)

我需要一种从obj中选择目标的方法,但我不知道何时使用.find以及何时使用.filter.

obj中提取目标的最快和/或最简洁的方法是什么?

我想出的是:

var $target = obj.find("#target").add(obj.filter("#target"));
Run Code Online (Sandbox Code Playgroud)

更新 我正在为JSPERF测试页添加解决方案,以查看哪一个是最好的.目前我的解决方案仍然是最快的.这是链接,请运行测试,以便我们有更多数据:

http://jsperf.com/jquery-selecting-objects

jur*_*six 2

与最快的并列:

var $target = obj.find('#target').addBack('#target')
Run Code Online (Sandbox Code Playgroud)