从 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>
我有以下 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>