jQuery this и Selector $ (this: first-child) .css ('color', 'red'); - PullRequest
3 голосов
/ 24 июля 2010

Можно ли использовать :selector со следующим в jQuery?

$('.galler_attr').bind('click', function() {
   $(this:first-child).css('color', 'red'); 
      });

Ответы [ 3 ]

14 голосов
/ 24 июля 2010

Нет.Вы пытаетесь смешать контекст функции со строкой.

Используйте this в качестве контекста селектора или вызовите find() on $(this)искать в рамках DOM элемента.Либо

$('.galler_attr').bind('click', function() {
   $(this).find(':first-child').css('color', 'red'); 
});

, либо вот так (что разрешает внутренне):

$('.galler_attr').bind('click', function() {
   $(':first-child', this).css('color', 'red'); 
});
1 голос
/ 24 июля 2010

Да, вы можете использовать его, но не таким образом. Вы можете поставить это так, как говорит Расс.

$('.galler_attr').bind('click', function() {
   $(this).find(':first-child').css('color', 'red'); 
});

Вы можете получить лучшую помощь для решения таких проблем, перейдя на www.visualjquery.com. Это красиво.

0 голосов
/ 24 июля 2010

в этом случае используйте .is()

$('.galler_attr').bind('click', function() {
   $(this).is(':first-child').css('color', 'red');
   // this would change the color to red if the clicked element is a first-child....
});

Интересно, почему бы просто не связать его непосредственно с первым ребенком?

$('.galler_attr:first-child').bind('click', function() {
   // this would bind click event to the first-child element...
   $(this).css('color', 'red');

});
...