Я столкнулся с очень смутной ошибкой при выполнении нескольких простых манипуляций с JQuery DOM.
Строка, которая вызвала ошибку, выглядит следующим образом:
$(this).closest('tr').remove();
Ошибка, как указано в заголовке:
Uncaught TypeError: Невозможно вызвать метод toLowerCase с неопределенным значением
в файле: jquery-1.6.2.js
.
Я уже пробовал с jQuery 1.6.3 и jQuery 1.5.1, но ничего не изменилось. Я все еще получаю сообщение об ошибке.
Приведенная выше строка связана с кнопкой, которая при нажатии отправляет запрос AJAX POST, а затем, при успешном завершении, удаляет свой собственный <tr>
. Я уже попробовал другой способ, выполнив:
$(this).parent().parent().remove()
но, к моему удивлению, это ничего не сделало.
Я использую Chrome, если это имеет значение, но я получаю ту же ошибку в FF.
EDIT:
Это мой код:
$(".remove").live('click', function(e) {
var str = $(this).attr('id').match(/\[(.*?)\]\[(.*?)\]/);
var type = str[1];
var id = str[2];
// IF I PUT THE remove() HERE, IT WORKS.
$.ajax({
type: 'POST',
url: '/admin/ajax_remove_event_detail',
data: {type: type, id: id},
success:function(res) {
if(res)
{
$(this).closest('tr').remove();
// this gives me an error
}
else
{
// error handling
}
}
});
e.preventDefault();
});
Если я помещаю remove () вне if, это работает. Почему он не работает, когда он находится внутри вызова ajax / if? Не имеет смысла для меня? (
Любая помощь здесь? Заранее спасибо.