Почему это не работает?
var string = '<b>Hello</b> this is just a <b>test</b>';
console.log($(string).find('b'));
Я ожидаю, что консоль Firebug выдаст мне два <b>
элемента, но вместо этого я получу пустой массив.
Однако, если я изменю это на:
var string = '<b>Hello</b> this is just a <b>test</b>';
console.log($('<div/>').html(string).find('b'));
Он делает то, что я хочу. Я понимаю, что jQuery внутренне присваивает переданный HTML, который он не может обработать с помощью createElement
, элементу <div>
, чтобы проанализировать его в структуре DOM, но не должен найти элементы в этом переданном HTML, как я пытался выше? Чтобы еще больше сбить с толку, иногда я вижу людей, успешно использующих первый синтаксис, когда они возвращают (а иногда искажают) HTML из запроса AJAX, но мне кажется, что это никогда не работает без добавления моего HTML-кода в <div>
Что мне не хватает?