jQuery ошибка в IE8 - .val () или trim ()? - PullRequest
1 голос
/ 10 мая 2011

Я получаю сообщение об ошибке jquery в отладчике IE8, но я не уверен, какая функция вызывает его. Я видел здесь целую кучу постов, в которых говорится, что IE8 не поддерживает нативную trim (), но я не использую нативную версию (не думаю, что унаследовал этот код; с нуля.)

Вот фрагмент, который вызывает проблемы - это часть функции щелчка:

greenlight = false;
link = $(this);
href = $(this).attr("href");
row = $(this).parent().parent();
if ($(":text", row).exists()) {
    new_email = jQuery.trim($(":text", row).val());
        //do stuff here

}

Ошибка, которую я получаю в отладчике, находится в строке, начинающейся с new_email; ошибка: «Объект не поддерживает это свойство или метод».

Может кто-нибудь помочь мне выяснить 1) какое свойство или метод IE8 не поддерживает, и 2) что я могу сделать, чтобы это исправить? Я ни в коем случае не эксперт по jquery; Я на 99% на стороне сервера.

Код работает в Chrome, Safari и Firefox.

Ответы [ 2 ]

11 голосов
/ 10 мая 2011

Обновление: из-за новой информации, я думаю, что вы столкнетесь с проблемой в IE, где у него будет конфликт, когда у вас есть переменная и элемент с идентичным именем, это вызовет конфликты и запутанные сообщения об ошибках о функциях, не выходящих,Смотрите эту ссылку для более подробного объяснения.http://www.karlstanley.net/blog/?p=5

Оригинальный ответ: Если у вас возникли проблемы при отладке одной сложной строки, разбейте ее на части,

var tempValue = $(":text", row).val();
new_email = jQuery.trim(tempValue);
2 голосов
/ 10 мая 2011

Изменение:

$(":text", row).exists()

Кому:

$(":text", row).length > 0

Насколько мне известно, в библиотеке jQuery нет функции exists() ( попытался найти ссылку на API ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...