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

如何在同时含指定文本的表格行中获取锚点标签ID?

问题描述

我有一个ID为PTSRCHRESULTS的表格,所有行元素均为锚点/链接。我需要获取同时包含"Undergrad"和"1"的行中任意元素的ID,该需求用于Power Automate Desktop,可通过运行JavaScript实现。

以本例来说,我需要获取表格第6行的特定ID。我知道如何定位单个条件的元素,例如:

var element = $( "a:contains('Undergrad')" );

但不知道如何将两个条件组合起来,求解答!

附上经过编辑的表格代码示例供参考:

<table id="PTSRCHRESULTS" class="PSSRCHRESULTSWBO" width="100%" cellspacing="0" cellpading="1" summary="Student Program/Plan Search Results. Row 1-7 of 7">
<tbody>
    <th scope="row" class="PSSRCHRESULTSODDROW"><a id="SEARCH_RESULT1" name="RESULT1$0" aria-describedby="app_label PSSRCHSUBTITLE PSSRCHINSTRUCTIONS" href="javascript:submitAction_win0(document.win0,'#ICRow0');" tabindex="54" class="PSSRCHRESULTSODDROW">00013XXXX</a></th>
    <td class="PSSRCHRESULTSODDROW"><a name="RESULT2$0" id="RESULT2$0" href="javascript:submitAction_win0(document.win0,'#ICRow0');" class="PSSRCHRESULTSODDROW">Postgrad</a></td>
    <td class="PSSRCHRESULTSODDROW"><a name="RESULT3$0" id="RESULT3$0" href="javascript:submitAction_win0(document.win0,'#ICRow0');" class="PSSRCHRESULTSODDROW">1</a></td>
    <td class="PSSRCHRESULTSODDROW"><a name="RESULT4$0" id="RESULT4$0" href="javascript:submitAction_win0(document.win0,'#ICRow0');" class="PSSRCHRESULTSODDROW">MMedSonog</a></td>
    <td class="PSSRCHRESULTSODDROW"><a name="RESULT5$0" id="RESULT5$0" href="javascript:submitAction_win0(document.win0,'#ICRow0');" class="PSSRCHRESULTSODDROW">TestPlace</a></td>
    </tr>
    <tr align="left">
        <th scope="row" class="PSSRCHRESULTSEVENROW"><a name="RESULT1$1" id="RESULT1$1" href="javascript:submitAction_win0(document.win0,'#ICRow1');" tabindex="55" class="PSSRCHRESULTSEVENROW">00013403U</a></th>
        <td class="PSSRCHRESULTSEVENROW"><a name="RESULT2$1" id="RESULT2$1" href="javascript:submitAction_win0(document.win0,'#ICRow1');" class="PSSRCHRESULTSEVENROW">Postgrad</a></td>
        <td class="PSSRCHRESULTSEVENROW"><a name="RESULT3$1" id="RESULT3$1" href="javascript:submitAction_win0(document.win0,'#ICRow1');" class="PSSRCHRESULTSEVENROW">0</a></td>
        <td class="PSSRCHRESULTSEVENROW"><a name="RESULT4$1" id="RESULT4$1" href="javascript:submitAction_win0(document.win0,'#ICRow1');" class="PSSRCHRESULTSEVENROW">GDMedRad</a></td>
        <td class="PSSRCHRESULTSEVENROW"><a name="RESULT5$1" id="RESULT5$1" href="javascript:submitAction_win0(document.win0,'#ICRow1');" class="PSSRCHRESULTSEVENROW">TestPlace</a></td>
    </tr>
    <tr align="left">
        <th scope="row" class="PSSRCHRESULTSODDROW"><a name="RESULT1$2" id="RESULT1$2" href="javascript:submitAction_win0(document.win0,'#ICRow2');" tabindex="56" class="PSSRCHRESULTSODDROW">00013403U</a></th>
        <td class="PSSRCHRESULTSODDROW"><a name="RESULT2$2" id="RESULT2$2" href="javascript:submitAction_win0(document.win0,'#ICRow2');" class="PSSRCHRESULTSODDROW">Undergrad</a></td>
        <td class="PSSRCHRESULTSODDROW"><a name="RESULT3$2" id="RESULT3$2" href="javascript:submitAction_win0(document.win0,'#ICRow2');" class="PSSRCHRESULTSODDROW">4</a></td>
        <td class="PSSRCHRESULTSODDROW"><a name="RESULT4$2" id="RESULT4$2" href="javascript:submitAction_win0(document.win0,'#ICRow2');" class="PSSRCHRESULTSODDROW">BMedRadSc</a></td>
        <td class="PSSRCHRESULTSODDROW"><a name="RESULT5$2" id="RESULT5$2" href="javascript:submitAction_win0(document.win0,'#ICRow2');" class="PSSRCHRESULTSODDROW">TestPlace</a></td>
    </tr>
    <tr align="left">
        <th scope="row" class="PSSRCHRESULTSEVENROW"><a name="RESULT1$3" id="RESULT1$3" href="javascript:submitAction_win0(document.win0,'#ICRow3');" tabindex="57" class="PSSRCHRESULTSEVENROW">00013403U</a></th>
        <td class="PSSRCHRESULTSEVENROW"><a name="RESULT2$3" id="RESULT2$3" href="javascript:submitAction_win0(document.win0,'#ICRow3');" class="PSSRCHRESULTSEVENROW">Undergrad</a></td>
        <td class="PSSRCHRESULTSEVENROW"><a name="RESULT3$3" id="RESULT3$3" href="javascript:submitAction_win0(document.win0,'#ICRow3');" class="PSSRCHRESULTSEVENROW">3</a></td>
        <td class="PSSRCHRESULTSEVENROW"><a name="RESULT4$3" id="RESULT4$3" href="javascript:submitAction_win0(document.win0,'#ICRow3');" class="PSSRCHRESULTSEVENROW">BMedRadSc</a></td>
        <td class="PSSRCHRESULTSEVENROW"><a name="RESULT5$3" id="RESULT5$3" href="javascript:submitAction_win0(document.win0,'#ICRow3');" class="PSSRCHRESULTSEVENROW">TestPlace</a></td>
    </tr>
    <tr align="left">
        <th scope="row" class="PSSRCHRESULTSODDROW"><a name="RESULT1$4" id="RESULT1$4" href="javascript:submitAction_win0(document.win0,'#ICRow4');" tabindex="58" class="PSSRCHRESULTSODDROW">00013403U</a></th>
        <td class="PSSRCHRESULTSODDROW"><a name="RESULT2$4" id="RESULT2$4" href="javascript:submitAction_win0(document.win0,'#ICRow4');" class="PSSRCHRESULTSODDROW">Undergrad</a></td>
        <td class="PSSRCHRESULTSODDROW"><a name="RESULT3$4" id="RESULT3$4" href="javascript:submitAction_win0(document.win0,'#ICRow4');" class="PSSRCHRESULTSODDROW">2</a></td>
        <td class="PSSRCHRESULTSODDROW"><a name="RESULT4$4" id="RESULT4$4" href="javascript:submitAction_win0(document.win0,'#ICRow4');" class="PSSRCHRESULTSODDROW">BMidwifery</a></td>
        <td class="PSSRCHRESULTSODDROW"><a name="RESULT5$4" id="RESULT5$4" href="javascript:submitAction_win0(document.win0,'#ICRow4');" class="PSSRCHRESULTSODDROW">TestPlace</a></td>
    </tr>
    <tr align="left">
        <th scope="row" class="PSSRCHRESULTSEVENROW"><a name="RESULT1$5" id="RESULT1$5" href="javascript:submitAction_win0(document.win0,'#ICRow5');" tabindex="59" class="PSSRCHRESULTSEVENROW">00013403U</a></th>
        <td class="PSSRCHRESULTSEVENROW"><a name="RESULT2$5" id="RESULT2$5" href="javascript:submitAction_win0(document.win0,'#ICRow5');" class="PSSRCHRESULTSEVENROW">Undergrad</a></td>
        <td class="PSSRCHRESULTSEVENROW"><a name="RESULT3$5" id="RESULT3$5" href="javascript:submitAction_win0(document.win0,'#ICRow5');" class="PSSRCHRESULTSEVENROW">1</a></td>
        <td class="PSSRCHRESULTSEVENROW"><a name="RESULT4$5" id="RESULT4$5" href="javascript:submitAction_win0(document.win0,'#ICRow5');" class="PSSRCHRESULTSEVENROW">BCommerce</a></td>
        <td class="PSSRCHRESULTSEVENROW"><a name="RESULT5$5" id="RESULT5$5" href="javascript:submitAction_win0(document.win0,'#ICRow5');" class="PSSRCHRESULTSEVENROW">TestPlace</a></td>
    </tr>
    </tr>
</tbody>
</table>

解决方案

要筛选出同时包含"Undergrad"和"1"的行,可通过以下两种方式实现:

方式一:链式筛选写法

直接通过has()方法叠加条件,定位符合要求的行后获取元素ID:

// 定位同时包含两个指定文本的行
var targetRow = $("#PTSRCHRESULTS tr").has("a:contains('Undergrad')").has("a:contains('1')");
// 获取该行第一个a元素的ID,可根据需求调整元素位置,比如用eq(2)获取第三个元素
var targetId = targetRow.find('a').attr('id');
console.log(targetId); // 示例中输出 RESULT1$5

方式二:遍历检查写法

先定位包含单个条件的元素,再遍历其所在行并检查第二个条件:

// 遍历所有包含Undergrad的a元素所在的行
$("#PTSRCHRESULTS a:contains('Undergrad')").closest('tr').each(function() {
  var currentRow = $(this);
  // 检查当前行是否包含文本为1的a元素
  if (currentRow.find("a:contains('1')").length > 0) {
    // 获取该行任意元素的ID,这里取第一个a元素
    var targetId = currentRow.find('a').attr('id');
    console.log(targetId); // 示例中输出 RESULT1$5
    // 若只需第一个匹配结果,可直接终止循环
    return false;
  }
});

代码说明

  1. $("#PTSRCHRESULTS tr"):定位表格内所有行元素
  2. .has("a:contains('文本')"):筛选出包含指定文本的a元素所在的行
  3. .closest('tr'):从当前元素向上查找最近的tr父元素
  4. .find('a').attr('id'):获取目标行内第一个a元素的ID,可通过eq(index)指定获取第几个元素的ID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 11:35:51