2016-01-27 1 views
2

Я пытался проверить мой id с помощью jQuery, и мне интересно, почему он не работает. Что я сделал не так?Проверить id и класс с помощью jQuery

<td class="food" id="butter"> 
    butter 
</td> 
<td class="food" id="milk"> 
    milk 
</td> 
$(function(){ 
    if ($('.food').attr('id') == "butter"){ 
     $('.food').css({ color: 'red' }); 
    } else { 
     $('.food').css({ color: 'blue' }); 
    } 
}); 

Он показывает все красные. Есть идеи? Большое спасибо.

+0

Вы можете запросить id с $ ('# id') ... – EluciusFTW

ответ

2

Во-первых, существует несколько .food элементов, так что вам нужно в цикле с использованием each(), а затем в течение этого цикла вы должны использовать this ссылаться только на текущий элемент. Попробуйте это:

$('.food').each(function() { 
    if (this.id == "butter"){ 
     $(this).css({ color: 'red' }); 
    } else { 
     $(this).css({ color: 'blue' }); 
    } 
}); 

Вы можете сократить это еще с использованием троичной:

$('.food').each(function() { 
    $(this).css('color', this.id == 'butter' ? 'red' : 'blue'); 
}); 

Working example

2

Или без .each():

$(".food").css({color: 'blue'}).filter("#butter").css({color: 'red'}); 
+0

спасибо, спасибо, большое спасибо. работает. :) –

+0

@GiantApe, если ответ был полезен, вы должны рассмотреть возможность принятия ответов. Читайте: http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work ... это способ сказать «спасибо» здесь, на StackOverflow. Вы уже задали 13 вопросов и не приняли их. Также прочитайте [tour]. Это все, если вы пропустили это! –

 Смежные вопросы

  • Нет связанных вопросов^_^