2010-05-04 46 views
1

我有一個事件處理程序需要根據一些保存的數據對其中一個子項執行某些操作。所以我現在做的是這樣的:如何使用'this'製作複雜的選擇器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'); 

它不起作用,這並沒有讓我感到驚訝。有沒有更好的方式來做到這一點,然後我上面列出的成功方式?

回答

4

您可以使用.find()(任何後代),或.children()(僅限於直接的兒童),像這樣:

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

.find()是相當於你目前擁有的,.children()就等於這個:

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

我從來沒有使用.find之前的原因 - 感謝新玩具:-) – Stomped 2010-05-04 12:09:57

2

可以選擇孩子喜歡這個問題,以及:

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