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 を取得する必要があります(2番目のリンクで、1ページに複数のリンクがある可能性があります)。テキストにフィルターを追加する必要があります。基本的に、「資金の追加」などの特定のテキストを含むリンクの値のみを取得します。

それぞれを使用してifステートメントを追加してテキストをチェックすることは可能ですが、フィルターを介して実行したいと思います。

助けてください!!!

編集:

私は問題をきちんと説明しなかったと思います。次のような方法でフィルターを設定する必要があります

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

タグ内のtext()に基づいてフィルターを設定したいと思います。問題がもう少し明確になることを願っています。

4

2 に答える 2

0

必要な要素を選択します。2つある場合は、セレクターに一致するすべての要素を返すため、.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 に答える
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 に答える