javascript - 为什么 jQuery 在选择器中链接 .attr() 时只选择一个元素?
问题描述
我有一个简单的链接列表:
<ul>
<li><a href="1">link 1</a></li>
<li><a href="2">link 2</a></li>
<li><a href="3">link 3</a></li>
<li><a href="4">link 4</a></li>
<li><a href="5">link 5</a></li>
<li><a href="6">link 6</a></li>
<li><a href="7">link 7</a></li>
<li><a href="8">link 8</a></li>
<li><a href="9">link 9</a></li>
<li><a href="10">link 10</a></li>
</ul>
如何使用 jQuery 选择这些链接?
$('a')
- 这将返回所有链接
如何获取这些链接的所有内容(“链接 1”、“链接 2”、“链接 3”...)?
$('a').text()
如何从链接(1、2、3 ...)中获取所有href?
$('a').attr('href')
不正确 ^ 它只选择第一个链接并返回1
而不是[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
.
我知道我可以map
,做each
等等,但我正在编写一个经常使用它的爬虫,我想知道为什么会发生这种情况以及我是否可以在这里获得所有没有任何循环的 href,只使用 jQuery(最好是 jQuery 核心)选择器?
解决方案
如果没有循环遍历它们,您就无法真正循环遍历 DOM 元素。
循环不会对您的网络爬虫的性能产生任何显着影响。
话虽这么说,你只是在看:
$('a').each(function() {
console.log($(this).text());
});
推荐阅读
- angular - 从一个视图访问模板引用变量到另一个视图
- php - 如何在 laravel 供应商文件之外防止注册后登录?
- angular - 启动应用程序时,
未填写 - node.js - 获取一个数组并逐行返回其项目
- matlab - MATLAB fcnLayers 函数可以与 MatConvNet 进行比较吗?
- oracle - 如何在页眉 oracle apex 中设置项目值
- c# - 将vb的代码片段转换为c#时遇到问题
- android-studio - 设备已连接但未特别显示颤振项目,为什么?
- objective-c - 通过 XPC 启动时出现问题。XPC 错误:连接中断
- java - 滚动时如何调用 RecyclerView 项目