如何用'this'jquery制作复杂的选择器

时间:2010-05-04 11:53:47

标签: jquery

我有一个事件处理程序,需要根据一些保存的数据对其中一个子进行操作。所以我现在正在做的是这样的事情:

// Get the ID of 'this'
item_id = $(this).attr('id');

// building a selector like $('#item1 .child_3')
$('#' + item_id + ' .child_' + spVal).addClass('blah');

但这看起来有点麻烦。我试过了:

$(this + ' .child_' + spVal).addClass('blah');

它不起作用,这并不让我感到惊讶。有没有更好的方法来做到这一点,然后我上面概述的成功方式?

2 个答案:

答案 0 :(得分:4)

您可以使用.find()(任何后代)或.children()(仅限直接子女),如下所示:

$(this).find('.child_' + spVal).addClass('blah');

.find()相当于您目前拥有的内容,.children()等同于此:

$('#' + item_id + ' > .child_' + spVal).addClass('blah');

答案 1 :(得分:2)

你也可以选择这样的孩子:

$(this).children('.child_' + spVal).addClass('blah');