You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jQuery获取激活状态的按钮数组并获取其上方文本?

解决方法:通过jQuery获取激活按钮对应的标题文本

没问题,咱们来搞定这个需求~首先得纠正你代码里的小问题,然后一步步实现目标:

原代码的问题点

你写的$('.btnp').active.toArray()是错误的:

  • jQuery里要选择同时拥有.btnp和.active类的元素,应该用复合选择器$('.btnp.active'),而不是先选所有.btnp再访问.active属性
  • 另外,你的HTML结构里,按钮是对应div的下一个同级元素,用closest("div")会找按钮的祖先div,这不符合你的需求,应该用prev()来获取前一个同级的div元素

正确实现代码

方式1:存入数组后遍历

先把激活的按钮转成数组,再逐个获取对应标题:

// 获取所有带.active类的.btnp按钮,转为原生DOM元素数组
const activeBtnps = $('.btnp.active').toArray();

// 遍历数组,逐个处理每个按钮
activeBtnps.forEach(btn => {
  // 找到按钮前一个同级的div,再获取里面的p.full-title文本
  const titleText = $(btn).prev('div').find('p.full-title').text();
  // 这里可以把文本存到新数组,或者做其他处理
  console.log(titleText);
});

方式2:jQuery链式遍历(更简洁)

如果不需要单独存按钮数组,直接用jQuery的each()方法遍历更方便:

$('.btnp.active').each(function() {
  // $(this)指向当前遍历的激活按钮
  const titleText = $(this).prev('div').find('p.full-title').text();
  console.log(titleText);
});

验证逻辑

结合你给出的HTML结构:

<div> <p class="full-title">Welcome</p> </div> <button class="btnp">SELECT</button>
<div> <p class="full-title">Hello</p> </div> <button class="btnp active">SELECT</button>
<div> <p class="full-title">Hi</p> </div> <button class="btnp active">SELECT</button>

当第二个和第三个按钮带有.active类时,代码会分别输出Hello和Hi,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Suriya Karthikeyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:50:40