0

我有几个在企业应用程序中动态生成的标签,如下所示

<a href='JavaScript:SWESubmitForm(document.SWEForm1_0,s_1,"s_1_1_1_0","1-SXPINW")' onclick='Edit_SList__0__Control__Renew_SPO__onclick(null, "s_1_1_1_0")'  tabindex=2997  id='s_1_1_1_0'>Renew PO</a>
<a href='JavaScript:SWESubmitForm(document.SWEForm1_0,s_2,"s_1_1_4_0","1-SXP9NW")' onclick='Edit_SList__0__Control__XRXAddFunds__onclick(null, "s_1_1_4_0")'  tabindex=2997  id='s_1_1_4_0'>Add Funds</a>

我有以下 jQuery 代码来提取从标签中识别记录的唯一值

var href = $('a[href*="SWESubmitForm"]').attr('href');
var rowId = "";
    if( href != ""){
        hrefAr =  href.split('","');
        rowId = hrefAr[hrefAr.length - 1];
        rowId = rowId.substr(0,(rowId.length - 2));
    }

上面的代码给了我1-SXPINW的值, 但我需要获得1-SXP9NW 的值(第二个链接,一页上可能有多个链接)。我需要为文本添加过滤器,基本上只检索具有特定文本的链接的值,例如“添加资金”。

我知道可以使用 each 并添加 if 语句来检查文本,但我想通过过滤器来完成。

请帮忙!!!

编辑:

我想我没有正确解释这个问题。我需要以这样的方式设置过滤器

if (text within a tag == "Add Funds") then get the value of ID within href attribute

我想根据标签中的 text() 设置我的过滤器。我希望它能更好地澄清问题。

4

2 回答 2

0

您可以使用.each()循环链接并从 href 属性中提取所需的值。

$('a[href*="SWESubmitForm"]').each(function() {
    var rowId = "";
    var href = $(this).attr('href');
    if (href != "") {
        hrefAr = href.split('","');
        rowId = hrefAr[hrefAr.length - 1];
        rowId = rowId.substr(0, (rowId.length - 2));
        console.log(rowId);
    }
});​
于 2012-08-22T16:53:57.257 回答
0

选择您想要的元素.. 如果其中有两个,只需使用 .eq() 因为它返回与您的选择器匹配的所有元素 - .eq 将返回一个 jquery 对象

var href = $('a[href*="SWESubmitForm"]').eq(1).attr('href'); // <-

或将其转换为 dom 元素

var href = $('a[href*="SWESubmitForm"]')[1].href; 

此外,由于您有一个,ID您可以使用ID选择器选择您想要的

var href = $('#s_1_1_4_0').attr('href');

或者如果有太多,你需要找到一个 9NW.. 只需在你的支票中使用 indexOf

$('a[href*="SWESubmitForm"]').each(function(){
     var rowId = ""; 
     if(this.href.indexOf('1-SXP9NW') > -1){ // <-- use indexOf to see if href contains the string                  
         hrefAr =  this.href.split('","');
         rowId = hrefAr[hrefAr.length - 1];
         rowId = rowId.substr(0,(rowId.length - 2));    
     }
});

具有过滤功能

var href = $('a[href*="SWESubmitForm"]').filter(function(){
         return this.href.indexOf('1-SXP9NW') > -1;
}).attr('href');   

毕竟这......你为什么不直接使用这个选择器?

$('a[href*="1-SXP9NW"]')

编辑:

如果Add Funds是静态的.. 然后使用:contains()选择器

var href = $('a:contains("Add Funds")').attr('href');
于 2012-08-22T16:43:33.193 回答