jQuery最近的()不适用于声明的变量

时间:2018-06-22 04:47:09

标签: jquery css selector

我试图将选择器放在变量中,以便能够重用它们,并获得更简洁的代码。我原来是这样的:

...code...
this.closest('.selectorA').find('.selectorB').find('input').val('Cool');
this.closest('.selectorA').find('.selectorC').find('input').val('Cool2');
this.closest('.selectorA').find('.selectorD').find('input').val('Cool3');
...code...

现在我将.selectorA分配给$foo变量:

var $foo = $('.selectorA');

...code...
this.closest($foo).find('.selectorB').find('input').val('Cool');
this.closest($foo).find('.selectorC').find('input').val('Cool2');
this.closest($foo).find('.selectorD').find('input').val('Cool3');
...code...

它不起作用。我知道我是否会这样:

var $foo = '.selectorA';

问题是,有没有办法使它与之配合工作?

var $foo = $('.selectorA');

this引用表的当前行,我有一个select onchange事件,一旦触发该事件便会更改当前行的输入值。

更新

请参阅示例:http://jsfiddle.net/superigno/wpLur9y5/

2 个答案:

答案 0 :(得分:0)

执行此操作:

var $foo = this.closest('.selectorA');

那么你可以

$foo.find(….).find(…).val(…);

答案 1 :(得分:0)

此处最近的()方法返回.selectorA的第一个祖先,以及find()返回input的后代的所有.selectorA元素,因为您必须为变量分配以下任何一个该选择器,然后再使用该方法。然后它将返回选择器。 这里是链接closest() find()