Jquery - 选择器,由对象和字符串组成,可以完成吗?

Yos*_*ssi 3 string jquery concatenation object css-selectors

假设有一个对象,作为参数传递给函数.参数名称是"obj".可以连接如下吗?

$(obj + " .className")......
Run Code Online (Sandbox Code Playgroud)

要么

$(obj + "[name='obj_name'])......
Run Code Online (Sandbox Code Playgroud)

谢谢.

Tat*_*nen 11

不,但您可以使用该filter()方法过滤掉对象本身:

$(obj).filter('.className')...
$(obj).filter('[name=obj_name]')...
Run Code Online (Sandbox Code Playgroud)

或者,如果你想找到具有这些品质的孩子:

$(obj).find('.className')...
$(obj).find('[name=obj_name]')...
Run Code Online (Sandbox Code Playgroud)

或者,另一种语法find,给obj作为$()函数的上下文:

$('.className', obj)...
$('[name=obj_name]', obj)...
Run Code Online (Sandbox Code Playgroud)

  • 我更喜欢后一种方法. (2认同)

Sam*_*son 5

选择器的第二个参数是上下文:

$(".className", obj).each(...);
Run Code Online (Sandbox Code Playgroud)

这会将所有匹配限制为obj. 所以假设obj是对div.parent

<div class="parent">
  <p class="className">I'll be found</p>
</div>
<p class="className">I will NOT be found</p>
Run Code Online (Sandbox Code Playgroud)