如何使用jQuery检索网页中的特定ID元素?

时间:2013-03-05 13:53:37

标签: javascript jquery

我不确定如何使用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

5 个答案:

答案 0 :(得分:1)

您需要使用包含选择器的属性: 我为你创建了一个Jsfiddle:http://jsfiddle.net/whizkid747/D2HS4/

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

文档:http://api.jquery.com/attribute-contains-selector/

答案 1 :(得分:0)

$('[id^="_AB_Q_"]').each(function(){
     console.log(this.getAttribute('id'));
});

答案 2 :(得分:0)

使用attribute contains选择器和map功能;

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

未经测试但应该有效:)

答案 3 :(得分:0)

我的方法是:

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

或多或少与其他onces相同,但我分离了匹配条件,以便于适应。 :)

答案 4 :(得分:-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'];