Не так работает код
<table border="1"> <tr> <td width="100" height="100" bgcolor="red">red</td> <td width="100" height="100" bgcolor="red">red</td> <td width="100" height="100" bgcolor="red">red</td> </tr> <td width="100" height="100" bgcolor="green">green</td> <td width="100" height="100" bgcolor="green">green</td> <td width="100" height="100" bgcolor="green">green</td> </table> $('button').click(function() { $('td').each(function() { if($('td').attr("bgcolor")=='red') { $('td').attr("bgcolor","yellow"); }; }); }); Должно изменить цвет только у тех, у кого bgcolor = red. Но изменяет цвет у всех. Что не так? |
так попробуйте
if($(this).attr("bgcolor")=='red') { $(this).attr("bgcolor","yellow"); |
Да, так действительно работает. Но в чем разница, почему через this работает а так нет, ведь оба одно и тоже.
|
$('td').attr("bgcolor","yellow")
Вы всем элементам td присваиваете новый цвет а не только выбранному поэтому когда используем each нужно пользоваться для конкретного экземпляра this |
Ну так я ведь пишу, изменять только те td у кого bgcolor == red, или это не имеет значения? нужно всегда через this?
|
аа.. Щас понял, спасибо
|
Часовой пояс GMT +3, время: 20:16. |