给定变量时,jQuery find()不起作用

时间:2015-02-03 11:52:28

标签: jquery

在我的剧本中,我这样做:

var target = $('#myForm input[name=target]').val(); // yields `itemControl`

这有效:

$('.process').closest('.post').find('.itemControl').empty().html('Success'); 
console.log(target); // itemControl

但是这不会(注意,我在这里使用var target):

$('.process').closest('.post').find(target).empty().html('Success');
console.log(target); // itemControl

为什么不这样做,以及如何在使用变量时做到这一点?

2 个答案:

答案 0 :(得分:0)

您在find() - 函数中缺少选择器:

$('.process').closest('.post').find(target).empty().html('Success');

必须 find('.' + target)

您的变量只包含一个itemControl字符串,而不是相应的对象。

要在函数中使用变量作为对象,您可以执行以下操作:

var target_object = $('.' + target);

然后.find(target_object)

但这就像我上面提到的那样,只有更多的代码。

答案 1 :(得分:0)

“find”方法参数是一个字符串。在你的情况下,你希望它是“.itemControl”。您的目标变量的值为“itemControl”,因此它不会给出您期望的结果。而是使用:

$('.process').closest('.post').find("."+target).empty().html('Success');

它应该像你期望的那样工作。