Pourquoi cela ne fonctionne-t-il pas?Sélection de HTML créé avec jQuery
var string = '<b>Hello</b> this is just a <b>test</b>';
console.log($(string).find('b'));
je me attends à la console de Firebug pour me donner les deux <b>
éléments, mais j'obtenir un tableau vide.
Cependant, si je change à ceci:
var string = '<b>Hello</b> this is just a <b>test</b>';
console.log($('<div/>').html(string).find('b'));
Il fait ce que je veux. Je comprends que jQuery attribue en interne le HTML passé qu'il ne peut gérer via createElement
à un élément <div>
afin de l'analyser dans une structure DOM, mais ne devrait-il pas être capable de trouver des éléments dans ce HTML passé comme j'ai essayé ci-dessus? Pour rendre les choses plus confuses, parfois je vois des gens avec succès en utilisant la première syntaxe quand ils sont revenus (et parfois malformé) HTML à partir d'une requête AJAX, mais cela semble ne jamais travailler pour moi sans ajouter manuellement mon code HTML à un <div>
Qu'est-ce que je rate?