JQuery-根据<A>标签

JQuery - Perform matching based on text inside <A> Tags

本文关键字:标签 gt lt 根据 JQuery-      更新时间:2023-09-26

我看过;Jquery从文本中提取URLjquery match()变量插值-复杂正则表达式但我还是有点迷路了。

问题;我有一个页面,顶部有一个下拉菜单,下拉菜单中有一个项目的名称,我可以点击它来查看该项目。项目的URL与名称无关,它是一个唯一的ID。

下拉列表的示例代码;

    <div class="innerMenuWrapper">
    <li class="hasSubMenu sfhover">
    <a href="javascript:void(0);" tabindex="-1" class="menuItemLink">Items</a>
    <span class="splIcon splIcon-triangle-4-e dropDown">Submenu</span>
    <div class="outerMenuWrapper splShadow" style="left: 160px; display: none; ">
    <ul>
    <div class="innerMenuWrapper">
    <li class="">
    <a href="/en-US/app/Items/itemahdwhidwbow" tabindex="-1"
       class="menuItemLink">item.one</a>
    </li>
    <li class="">
    <a href="/en-US/app/Items/itemfhfaogsgs" tabindex="-1"
       class="menuItemLink">item.two</a>
    </li></div></ul></div></li></div>

这一切都是在外部生成的,并由实际的web服务本身进行管理。页面本身是一个由数据集生成的表。我生成的数据没有问题,演示也很好。我想做的是从上面的HREF中提取URL,并将同一项包装在主页面的表中。

例如,我有一个由3列组成的表,项目、项目内容、项目价格等。我想用上面的关联URL包装每个项目。

以item.one为例,这是它在下拉列表中的名称,URL为/en-US/app/Items/itemahdwhidwbow。在数据本身内部,我有这样的代码来选择表的每个第一个单元格,并用链接(较大代码集的一部分)包装内容;

if (tr.find("td:nth-child(1)")) {
  tr.find("td:nth-child(1)").wrapInner(function() {
    var link = $('<a/>');
    link.attr('href', 'US/app/Items/itemahdwhidwbow');
    link.text($(this));
    return link;
  });
}

显然,目前URL是静态的。我真正需要的是一种从同一页面的下拉列表中的相关链接中提取URL的方法。第一个表格单元格中的名称将始终与下拉列表中的名称匹配,有没有简单的方法可以让我做到这一点?到目前为止,我所读到的内容指向regex的使用,但在本例中,我正在寻找代码中某一部分的内容,以匹配页面下方的内容。

编辑:

例如,item.one有文本"item.one"。"item.oone"也在表中,我希望表中的"item.one"具有与下拉列表中相同的链接。如果我能找到锚内的文本,那么我就可以与表中的文本进行匹配

我不清楚您的表布局结构,但我可以给您一个大致的想法:

$('a.menuItemLink').each(function(index, linkEl){ //Iterate over dropdown links      
     var $link=$(linkEl);
     tr.find("td:nth-child("+ index +")") //Lets say here we get required cell by index
         .wrapInner( 
              $('<a/>').attr('href', $link.attr('href'))
         );
});