将Jquery应用于未知数量的编号ID

时间:2012-04-18 19:45:27

标签: jquery drupal-7

我对JQuery几乎一无所知,并且在Stackoverflow上找到了我的大部分解决方案,所以我希望我的答案(可能是noob以及首次“so.com”)问题。我正在尝试将jquery脚本应用于未知数量的编号ID。我可以引用从id-1到id-1000的每个ID,并希望我永远不需要更多,或者我可以以某种方式引用id-n,在这种情况下,它将适用于最后带有数字的任何ID。

这是我的代码:

drupal_add_js('jQuery(document).ready(function (){jQuery("#pika-[any integer]").PikaCho...

哪个应该影响:

<ul id="pika-1"> or <ul id="pika-329"> or <ul id="pika-[any integer]">

我将如何完成这项工作?

(为清楚起见,这是在Drupal template.php文件中,以影响pikachoose图库显示。不是我认为这会产生影响。)

4 个答案:

答案 0 :(得分:3)

$('ul[id^="pika-"]')将选择ID为“pika - ”

的所有ul

http://api.jquery.com/category/selectors/attribute-selectors/

答案 1 :(得分:2)

还想指出这是JS不需要jQuery开销的一行。

document.querySelectorAll("ul[id^=pika-]");​

解决一些边缘案例的解决方案。

<强> live demo

var elements = [];

[].forEach.call(
    document.querySelectorAll("ul[id^=pika-]"),
    function(el){
        var check = /[0-9]$/;
        if(el.id.match(check)){
           elements.push(el); 
        }
     }
);

还编辑了Jay Blanchard的js perf,并使用ul标识符添加了qsa,qsa优于jQuery(惊喜)

http://jsperf.com/jquery-id-startswith/2

答案 2 :(得分:1)

jQuery('ul').filter('[id^=”pika-”]')

答案 3 :(得分:0)

请使用:

jQuery("[id^=pika]").pikaCho

所以每个以“pika”开头的id都会受到影响。