Проверка корректности jQuery элемента

O
На сайте с 29.05.2008
Offline
195
579

Здравствуйте.

Написал методы для работы с AJAX. Суть простая, после success сервер отдает JSON в котором содержатся команды для обработки jQuery.

Например, следующий метод

if (result.replace) {

$.each(result.replace, function(index, value) {
$($$.object).find(tryObject(index)).replaceWith($(value));
});
}

получает в ячейку replace параметры для замены с помощью jQuery, где index - элемент, value - на что заменять.

И все бы хорошо и удобно, если бы не... Если передать в value-index jQuery элемент (т.е. селектор или html код) - все работает, но если передать текст - парсер jQuery дохнет и отдает throw.

Придумал, следующее решение. Вместо $(value) запускать функцию проверки с помощью try-catch и возврата, соответственно, либо элемента либо текста на место index или value:

function tryObject(object) {

try {
return $(object).lenght ? $(object) : object;
}
catch(e) {
return object;
}
}

Выглядит криво. Насколько безопасно такое решение? И какое еще может быть решение, кроме как отдавать корректный селектор или DOM элемент?

O
На сайте с 29.05.2008
Offline
195
#1

Еще заметил, что jQuery крешится, только если передать в него текст с закрытыми (), но зато такой текст он возвращает, а просто текст - нет.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий