在我的剧本中,我这样做:
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
为什么不这样做,以及如何在使用变量时做到这一点?
答案 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');
它应该像你期望的那样工作。