从 HTML 片段创建节点列表后,.find() 未按预期工作

.find() not working as expected after creating node list from HTML snippet

我有以下 Javascript 代码使用 jQuery:

var html = '<a href="http://foo.example.com">Foo/a> | ' + 
           '<a href="http://bar.example.com">Bar</a>';
var aTags = $(html).find('a');
console.log(aTags.length); // => 0

为什么 aTags 是一个空数组而不是 2 <a> 个节点的数组?

您需要使用 filter() 因为 find() 试图找到 jQuery 对象引用的元素的后代元素,在您的字符串中 a 元素位于根所以 find() 将无法找到它们

var html = '<a href="http://foo.example.com">Foo/a> | ' +
  '<a href="http://bar.example.com">Bar</a>';
var aTags = $(html).filter('a');
snippet.log(aTags.length); // => 0
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>