我正在尝试使用$('.yurubfa')[0].href;
获取每个页面的第一个链接,但是,这个代码获取所有页面的数据,然后多次打印第一个页面的链接。
我做错了什么?
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<?php
function pageNum($pageNum) {
include $pageNum.".html";
?>
<script>
$(document).ready(function(){
const el = $('.yuRUbf a')[0].href;
console.log(el);
});
</script>
<?php
}
pageNum("1");
pageNum("2");
?>
编辑:
让我用另一种方式解释:我有5个html页面,每个html页面包括10个链接,我想要每个html页面的第一个链接。
所以我使用jQuery脚本提取href属性值,它是链接,但是,它不是提取每个页面的第一个链接,而是提取第一个页面的第一个链接5次,因为我有5个文件。
鉴于现有代码返回所有页面的链接,我将假设每个“页面”包含类似于
<div class='yuRUbf'>
...
<div>
在这种情况下,您可以在结束时使用一个调用(即不在pageNum循环内)将所有第一个链接整理成一个数组
var links = $(".yuRUbf").map((i,e) => $(e).find("a")[0].href).toArray()
(如果您将此传递给其他对象,例如links.addClass(“active”)
,则不要使用.toArray()
)
如果您更喜欢/需要一个循环而不是一个数组,这相当于:
$(".yuRUbf").each(function(i, e) {
var el = $(this).find("a")[0].href;
console.log(el);
});
示例:
null
$(function() {
const first_links = $(".yuRUbf").map((i,e)=>$(e).find("a")[0].href).get();
console.log(first_links)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class='yuRUbf'>
<div>
<a href='l1'>l1</a>
</div>
<a href='l2'>l2></a>
<a href='l2'>l2</a>
</div>
<div class='yuRUbf'>
<div>
<a href='l12'>l12</a>
</div>
<a href='l22'>l22></a>
<a href='l22'>l22</a>
</div>