Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.02.2013, 20:52
Аспирант
Отправить личное сообщение для Marker Посмотреть профиль Найти все сообщения от Marker
 
Регистрация: 06.01.2013
Сообщений: 95

Не так работает код
<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. Но изменяет цвет у всех. Что не так?
Ответить с цитированием
  #2 (permalink)  
Старый 07.02.2013, 20:54
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

так попробуйте
if($(this).attr("bgcolor")=='red') {
$(this).attr("bgcolor","yellow");
Ответить с цитированием
  #3 (permalink)  
Старый 07.02.2013, 21:05
Аспирант
Отправить личное сообщение для Marker Посмотреть профиль Найти все сообщения от Marker
 
Регистрация: 06.01.2013
Сообщений: 95

Да, так действительно работает. Но в чем разница, почему через this работает а так нет, ведь оба одно и тоже.
Ответить с цитированием
  #4 (permalink)  
Старый 07.02.2013, 21:09
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

$('td').attr("bgcolor","yellow")
Вы всем элементам td присваиваете новый цвет а не только выбранному
поэтому когда используем each нужно пользоваться для конкретного экземпляра this
Ответить с цитированием
  #5 (permalink)  
Старый 07.02.2013, 21:16
Аспирант
Отправить личное сообщение для Marker Посмотреть профиль Найти все сообщения от Marker
 
Регистрация: 06.01.2013
Сообщений: 95

Ну так я ведь пишу, изменять только те td у кого bgcolor == red, или это не имеет значения? нужно всегда через this?
Ответить с цитированием
  #6 (permalink)  
Старый 07.02.2013, 21:16
Аспирант
Отправить личное сообщение для Marker Посмотреть профиль Найти все сообщения от Marker
 
Регистрация: 06.01.2013
Сообщений: 95

аа.. Щас понял, спасибо
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написал скрипт, а он работает не так как надо( Chiz Общие вопросы Javascript 2 19.04.2012 14:15
Код не работает в Firefox talliar Общие вопросы Javascript 4 13.03.2012 17:09
InnerHTML почему-то работает не так, как хотелось бы. помогите Dima00782 Общие вопросы Javascript 2 13.06.2010 20:17
Почему код работает? (обращение к форме из window) Василий Б. Элементы интерфейса 10 21.04.2010 09:10
достал уже IE (не работает код) Weise Internet Explorer 11 29.03.2010 12:46