[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обратиться к спану по его ID
AlmazDelDiablo
Всем привет.
Стоит передо мной такая задача. Надо обратиться к тэгу «span», у которого задан опрделенный ID. Но мой вариант не работает. Пробовал много разных способов, но все они оказались бредовыми и просто «ради эксперимента».

Вот такая функция:
function showInterimError(id, color, msg) {
var span = $('span#'+id);
if( !$('body').find('#'+id).is('span') ) {
$('#'+id).after(' <span id="'+id+'" style="color: #'+color+'; opacity: 0;">'+msg+'</span>');
$(span).animate({opacity: '1'}, "fast");
} else {
$(span).animate({opacity: '0'}, "fast", function(){
$(span).remove();
$('#'+id).after(' <span id="'+id+'" style="color: #'+color+'; opacity: 0;">'+msg+'</span>');
$(span).animate({opacity: '1'}, "fast");
});
}
}

Вводные данные:
showInterimError('reg_name', 'db0000', 'Заполните форму');




Спустя 7 минут, 16 секунд (18.04.2011 - 14:44) Nikitian написал(а):
Так может и нет такого id или он не уникален?

Спустя 2 минуты, 35 секунд (18.04.2011 - 14:47) AlmazDelDiablo написал(а):
Прошу прощения, забыл добавить, что еще есть форма и небольошй обработчик:
<input type="text" id="reg_name" />
$('#reg_name').focusout(function(){
if( $('#reg_name').val() == '' ) {
showInterimError('reg_name', 'db0000', 'Введите ваши ФИО');
return false;
}
}
);

Спустя 2 минуты, 22 секунды (18.04.2011 - 14:49) Nikitian написал(а):
Что-то я совсем запутался: как так, сперва удалить элемент $(span).remove(); а потом после него ставить что-то другое? $('#'+id).after(' <span id="'+id+'" style="color: #'+color+'; opacity: 0;">'+msg+'</span>');

Спустя 4 минуты, 25 секунд (18.04.2011 - 14:53) AlmazDelDiablo написал(а):
Сначало удаляем существующий спан, если он есть и заменяем его на новый спан. А форма, после которой он добавляется — остается на месте.

Спустя 8 минут, 49 секунд (18.04.2011 - 15:02) Nikitian написал(а):
А ничего, что это идентичные записи?
$('span#'+id)
$('#'+id)
Поэтому делая $(span).remove(); сделать дальше $('#'+id).after() уже нельзя.

Спустя 11 минут, 51 секунда (18.04.2011 - 15:14) AlmazDelDiablo написал(а):
Угумс... Попробовал вот так:
function showInterimError(id, color, msg) {
var spanId = $('spanId#'+id);
var inputId = $('inputId#'+id);

if( !$('body').find(spanId) ) {
$(inputId).after(' <spanId id="'+id+'" style="color: #'+color+'; opacity: 0;">'+msg+'</spanId>');
$(spanId).animate({opacity: '1'}, "fast");
} else {
$(spanId).animate({opacity: '0'}, "fast", function(){
$(spanId).remove();
$(inputId).after(' <spanId id="'+id+'" style="color: #'+color+'; opacity: 0;">'+msg+'</spanId>');
$(spanId).animate({opacity: '1'}, "fast");
});
}
}
Но тоже не работает.

Спустя 6 минут, 31 секунда (18.04.2011 - 15:21) Nikitian написал(а):
id должен быть уникален в рамках всего документа. Используйте класс для идентификации.


_____________
Блог | VK | GitHub | Twitch
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.