Как передать несколько переменных через имя класса?

Я хочу создать общий / масштабируемый класс, который может принимать ни одну или несколько переменных и обрабатывать их. Я хочу узнать, как проверить, какое поле присутствует, количество переданных полей и что-то с этим сделать. Класс '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));
});

Извините за пример с фруктовой лавкой, я подумал, что было бы интересно задать вопрос более живым способом.:)

Большое спасибо.

3 ответа

Решение

Другим способом может быть использование атрибутов данных HTML5:

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

Тогда ваш код JS может пойти:

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

который получил бы множество всех фруктов для киоска.

Вы можете назначить несколько классов:

<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.

Я не знаю, может ли это сработать, но если вы подготовите свой класс 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

Другие вопросы по тегам