【问题标题】:How to initialize jCarousel jQuery plugin for multiple elements如何为多个元素初始化 jCarousel jQuery 插件
【发布时间】:2011-04-03 18:37:18
【问题描述】:

我有几个 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

【问题讨论】:

  • 为什么不给他们一个班级?
  • 你不能通过 $('.test') 类来选择它,其中 test 是在为 jcarousel 选择的所有项目上定义的类

标签: jquery


【解决方案1】:

将类名分配给各种元素会容易得多,然后将类用作选择器 ($('.className').jcarousel({ // something })),但如果您想使用 ids 作为选择器有几个选择:

第一:

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

其次:

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

根据您对@Bjorn的评论:

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

你仍然可以使用类名作为选择器:

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

一个小问题,jQuery如何获取元素名称以便我可以通过它来获取?

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

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

参考资料:

【讨论】:

  • 一个附带问题,jQuery如何获取元素名称以便我可以通过它来获取?
  • 我喜欢正则表达式解决方案..这就是我一直在寻找的
  • @EquinoX:如果发布的答案帮助/解决了您的问题,请随时投票或接受。 :)
  • 我实际上试过this.tagName,它没有工作..我想用它来传递get
【解决方案2】:

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

【讨论】:

  • 我需要使用id,因为每个id名称都会作为参数传入
【解决方案3】:

我建议选择您想要的元素,然后使用 $().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 是因为选择器只需要处理一次。您可以改用 $(this),但我认为它会慢一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    相关资源
    最近更新 更多