1

jQuery を使用して、現在の Web ページ (つまり、Web アプリ) でこれにアプローチする方法がわかりません。IDが文字列「_AB_Q_」に一致するすべての要素を、Webページに表示される順序で配列に追加できるようにしたいと思います

たとえば、Web ページ全体に散在するのは、次のインスタンスです。

<id="P1_AB_Q_101">...
<id="P1_AB_Q_102">...
<id="P1_AB_Q_103">...
<id="P1_AB_Q_104">... 
..
...
....
<id="P1_AB_Q_500">... 

前述のように、ID がパターン「_AB_Q_」に一致する完全な ID 名のみを取得し、後で処理するためにこれらを配列に格納したいと考えています。

したがって、上記のテスト データを使用して、以下のみを返したいと思います。

P1_AB_Q_101
P1_AB_Q_102
P1_AB_Q_103
P1_AB_Q_104 
P1_AB_Q_500
4

5 に答える 5

1

属性 contains セレクターを使用する必要があります: Ive created a Jsfiddle for you: http://jsfiddle.net/whizkid747/D2HS4/

$('[id*="_AB_Q_"]').each(function(){
    alert(this.getAttribute('id'));
});

ドキュメント: http://api.jquery.com/attribute-contains-selector/

于 2013-03-05T14:02:57.573 に答える
0

私のアプローチは次のようになります。

var ids = []
$("*").each(function(){
    if(this.id.match(/_AB_Q_/))
        ids.push(this.id)
});

他のワンスとほぼ同じですが、適応しやすいようにマッチ条件を分けました。:)

于 2013-03-05T14:49:35.157 に答える
0

属性 containsセレクターとmap関数を使用します。

var ids = $('[id*="_AB_Q_"]').map(function() { return this.id });

テストされていませんが、動作するはずです:)

于 2013-03-05T14:02:31.380 に答える
0
$('[id^="_AB_Q_"]').each(function(){
     console.log(this.getAttribute('id'));
});
于 2013-03-05T13:56:43.190 に答える
-1
$('[id^=_AB_Q_]').doSomeAction();

ID が指定された文字列で始まるかどうかをチェックします。

JQuery セレクターは CSS セレクターです。完全なリストについては、http://www.w3.org/TR/CSS2/selector.htmを確認してください。

編集:

// if the id = AB_Q_P1_100
// you can retrieve different parts of the id like this
var parts = $(this).attr('id').split('_');
var p = parts['3'];
于 2013-03-05T13:57:54.280 に答える