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

プロダクションコードでは決してやらないでしょうが、それはかなり面白いです

乾杯

グルーヴィーク

于 2011-05-11T15:10:58.903 に答える