1

我不确定如何使用 jQuery 为我所在的网页(即在我的网络应用程序中)处理此问题。我希望能够通过网页按出现顺序添加到数组中,其中 id 与字符串“_AB_Q_”匹配的所有元素

例如,分散在网页中的将是以下实例:

<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

您需要使用属性包含选择器:我为您创建了一个 Jsfiddle: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
$('[id^="_AB_Q_"]').each(function(){
     console.log(this.getAttribute('id'));
});
于 2013-03-05T13:56:43.190 回答
0

使用属性包含选择器和地图功能;

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

未经测试,但它应该可以工作:)

于 2013-03-05T14:02:31.380 回答
0

我的方法是:

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

与其他一次或多或少相同,但我将匹配条件分开,以使其易于适应。:)

于 2013-03-05T14:49:35.157 回答
-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 回答