I have a simple list of links:
<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>
How do I select these links with jQuery?
$('a')
- this returns all the links
How do I get all the contents of these links ("link 1", "link 2", "link 3"...)?
$('a').text()
How do I get all the hrefs from the links (1, 2, 3...)?
$('a').attr('href')
NOT TRUE ^ IT SELECTS ONLY THE FIRST LINK and returns 1
instead of [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
.
I know I could map
, do each
etc. but I'm writing a crawler that uses this a lot and wondered why is this happening and whether I can get all the hrefs without any loops here, just using jQuery's (preferably jQuery core) selectors?
You can't really loop over DOM elements without, well, looping through them.
Looping won't have any dramatic effect on the performance of your web-crawler.
This being said, you're just looking at:
$('a').each(function() {
console.log($(this).text());
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.