如何为多个元素初始化jCarousel jQuery插件

时间:2011-04-03 18:37:18

标签: jquery

我有几个id有以下名称test1,test2,test3,test4,我有以下jQuery:

jQuery(document).ready(function() {
            jQuery('#test').jcarousel({
                //something
            });
        });

我也有以下代码:

jQuery.get(
                'allmovieloader.php',
                {
                    first: carousel.first,
                    last: carousel.last
                                    id: myelementid
                },
                function(xml) {
                    mycarousel_itemAddCallback(carousel, carousel.first, carousel.last, xml);
                },
                'xml'
            );

因此,当我调用get时,我也希望传入id,如test1,test2,test3 我应该如何更改此jQuery代码,以便它适用于test1,test2,test3

3 个答案:

答案 0 :(得分:2)

为各种元素分配一个类名,然后使用该类作为选择器($('.className').jcarousel({ // something }))要容易得多,但是如果你想使用id作为选择器你有几个选择:

首先:

$('#test1, #test2, #test3').jcarousel({ // something });

其次:

$('div[id^="test"]').jcarousel({ // something });

根据您对@Bjorn的评论:

  

我需要使用id,因为每个id名称都将作为参数传递

您仍然可以使用class-name作为选择器:

$('.className').jcarousel(
    function(){
        var idOfElement = this.id;
        // other stuff
    });
  

一个附带问题,jQuery如何获取元素名称,以便我可以将其传递给?

要获取元素名称(我假设您的意思是标记名?),您可以使用:

$('.className').jcarousel(
    function(){
        var nameOfTag = this.tagName;
        alert(nameOfTag);
     });

参考文献:

答案 1 :(得分:0)

只需编辑您的选择器?即#test, #test1, #test2等?或者更好的是,分配一个班级。

答案 2 :(得分:0)

我建议选择你想要的元素,然后使用$()。each来“迭代”每个元素,它将传递的函数应用于你选择的每个元素。您可以通过这种方式获取每个元素的特定属性。

$('#test, #test1, #test2').each(function(index, dom_element){
 var $this = $(dom_element);
 var id = $this.attr('id'); //eg. test, or test1, or test2
 $this.jcarousel({/*do something*/});
});

var $这是因为选择器只需要处理一次。你可以使用$(this)代替,但我认为它会慢一点。