Не так работает код
<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, время: 03:44. |