如何从jQuery对象中选择元素?

Ste*_*ven 1 jquery

说我有以下代码:

<div class="foo">
  <div class="t1">A</div>
  <div class="t2">B</div>
</div>

//JS

var obj = $('.foo');
Run Code Online (Sandbox Code Playgroud)

现在我想从t2元素中获取文本.如何使用我的obj对象选择此项?

这并没有工作:var txt = $(obj + '.t2').text();
这工作得很好:var txt = obj.find('.t2').text();
我也知道我可以用这var txt = $('.foo .t2').text();

但我认为使用.find()比直接选择需要更多资源.有没有办法可以直接使用my选择子元素obj

Ror*_*san 6

一次尝试这个尝试:

var txt = $(obj + '.t2').text();
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为您尝试将字符串附加到对象,其结果将不是有效的选择器.

var txt = obj.find('.t2').text();
Run Code Online (Sandbox Code Playgroud)

这将查找.t2原始选择器中缓存的元素子集中的元素.这是用于场景的最佳方法,实际上使用的资源少于示例3:

var txt = $('.foo .t2').text();
Run Code Online (Sandbox Code Playgroud)

这也将工作,但它将需要jQuery再次扫描DOM,这是应尽可能避免的事情.

  • 还有一个选项是`$('.t2',obj).text();` (2认同)