php - 为每个文件执行一个 jQuery 脚本,然后打印结果,但多次获得第一个结果
问题描述
我正在尝试使用 获取每个页面的第一个链接$('.yuRUbf a')[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);
});
例子:
$(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>
推荐阅读
- bluetooth-lowenergy - 多个 BLE 配置文件
- amazon-web-services - 我们可以将未加密的 s3 源对象复制到 kms 加密的目标 s3 存储桶吗?
- mathematical-optimization - 使用“ceil”和“sign”功能时出现“问题不符合DCP规则”,如何避免?
- eclipse - spring-boot:在 jar 文件中以及它是如何执行的
- firebase - 使用 redux 从 Firestore 获取我的媒体播放器的 URL
- stripe-payments - 如何编辑这个重力表格条纹插件代码,以便我也可以从信用卡中收费?
- python - 表格小部件被下一个标题覆盖
- python - 如何修复 discord.py 中未定义“路径”?
- android - 使用几张jpg图片时,c++builder android找不到资源
- gnuplot - 如何在 GNUPlot 的箱形图中使 xtics 标签颜色变量?