0

我想创建一个能够接受任何变量或多个变量并对其进行处理的通用/可扩展类。我想学习如何检查存在哪个字段、传递的字段数并对其进行处理。'fruitstall' 类可以接受 0 个或多个水果变量。

HTML:

<div class="fruitstall(apple,orange)"></div>

脚本:

$('.fruitstall').click(function(event){
   if (get first variable value and check if it is an apple) {
      //Show apple image 
   } elseif (get the next variable value and check if it is an orange) {
      //Show orange image
   }
   alert('Number of fruit chosen are ' + (count number of variable passed to class) + ' ; ' fruit(index0) + fruit(index1));
});

恕我举个水果摊的例子,我觉得用更生动的方式提问会很有趣。:)

非常感谢你。

4

3 回答 3

3

您可以分配多个类:

<div class="apple orange" id="divId"></div>

然后像这样对它们进行拆分:

var classList =$('#divId').attr('class').split(/\s+/);
$.each( classList, function(index, item){
    if (item=='someClass') {
       //do something
    }
});

资料来源:使用 jQuery 获取元素的类列表

于 2011-05-11T15:02:17.470 回答
3

另一种方法可能是使用 HTML5 数据属性:

<div class="fruitstall" data-fruits="apple,orange"></div>

然后你的JS代码可以去:

var fruits = $(this).data('fruits').split(',');

这将为摊位提供一系列所有水果。

于 2011-05-11T15:08:41.437 回答
1

我不知道这是否可行,但是如果您准备将 String 类作为 JSON 类,则可以使用 eval() 获取可以从中枚举参数的对象

 function prepareAsJSON(className){
        var JSON = "{list:function" + className + "{return arguments}}"
        return JSON
 }

 var className = $("div").attr('class');
 var st = prepareAsJSON(className);
 var obj = eval(st)
 obj.list() //should return arguments as an array

我永远不会在生产代码中这样做,但这很有趣

干杯

Grooveek

于 2011-05-11T15:10:58.903 回答