如何使用'this'jquery生成复杂选择器

如何使用'this'jquery生成复杂选择器,jquery,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).find('.child_' + spVal).addClas

我有一个事件处理程序,它需要根据一些保存的数据对它的一个子项执行某些操作。所以我现在做的是这样的:

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

// building a selector like $('#item1 .child_3')
$('#' + item_id + ' .child_' + spVal).addClass('blah');
$(this).find('.child_' + spVal).addClass('blah');
但这似乎有点麻烦。我试过:

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

它不起作用,这并不让我感到惊讶。有没有比我上面介绍的成功方法更好的方法呢?

您也可以这样选择孩子:

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

您也可以像这样选择子项:

$(this).children('.child_' + spVal).addClass('blah');
您可以使用任何子代,也可以仅使用直接子代,如下所示:

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

// building a selector like $('#item1 .child_3')
$('#' + item_id + ' .child_' + spVal).addClass('blah');
$(this).find('.child_' + spVal).addClass('blah');
.find等同于您当前拥有的内容,.children等同于以下内容:

$('#' + item_id + ' > .child_' + spVal).addClass('blah');
您可以使用任何子代,也可以仅使用直接子代,如下所示:

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

// building a selector like $('#item1 .child_3')
$('#' + item_id + ' .child_' + spVal).addClass('blah');
$(this).find('.child_' + spVal).addClass('blah');
.find等同于您当前拥有的内容,.children等同于以下内容:

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

我从来没有理由使用。查找之前-感谢新玩具:-我从来没有理由使用。查找之前-感谢新玩具:-