1

我对 JQuery 几乎一无所知,并且在 Stackoverflow 上找到了我的大部分解决方案,所以我希望我的(可能是菜鸟以及第一个“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

4 回答 4

3

$('ul[id^="pika-"]')将选择所有具有以“pika-”开头的 id 的 ul

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

于 2012-04-18T19:48:10.127 回答
2

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

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

以及处理一些边缘情况的解决方案。

现场演示

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 ​</p>

于 2012-04-18T19:55:10.490 回答
1
jQuery('ul').filter('[id^=”pika-”]')
于 2012-04-18T19:48:22.797 回答
0

只需使用这个:

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

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

于 2012-04-18T19:53:53.387 回答