@ColdSpirit

Почему filter() выдает ошибку и как это исправить?

Есть такой код:
https://jsfiddle.net/s17p66sq/
var data = 'somestring';
console.log($(data).filter('.someclass'));

var data2 = 'somestring<br>';
console.log($(data2).filter('.someclass'));

При фильтрации data фильтр возвращает объект, при data2 - бросает ошибку и вообще вырубает jQuery. Задача - извлечь некие данные из текста, если они есть. Можно ли исправить эту ошибку или обойти ее?

#Решил проблему данным способом:
var data = $.parseHTML('somestring');
console.log($(data).filter('.someclass'));

var data2 = $.parseHTML('somestring<br>');
console.log($(data2).filter('.someclass'));
  • Вопрос задан
  • 184 просмотра
Решения вопроса 1
IonDen
@IonDen
JavaScript developer. IonDen.com
filter всего лишь делает выборку из некого jQuery объекта.
data и data2 - должны быть осмысленным селектором, а не строкой. Т.е. #id, .class, [name='vasya'] и т.п.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
BRAGA96
@BRAGA96
Нужно передать контекст.
var $data = $($.parseHTML('<div><p>Lorem ipsum dolor sit amet.</p></div>'));
$('p', $data).filter('...');
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы