2016-05-05 1 views
0

プログラミングへの旅を始めたばかりで、最近の問題がRubyオブジェクトで動作するようにJavaScriptのドロップダウンメニューを手に入れようとしています。Ruby on Railsで動作するようにJavascriptドロップダウンメニューを取得する

私は現在、私の見解

<tr class="<%= inv.special %> <%= inv.hotel_id %>">

にこのコードを持っていると私は要素を検査する場合、これは示したものです。

<tr class="true 4" style="display: table-row;">

これは私がJavaScriptで行っているが、inv.hotel.id作業を取得するように見えるカントものです。任意のヘルプが評価されます

<script type="text/javascript"> 
         $(function(){ 
          $(".dropdown-menu li a").click(function(){ 
            choice = $(this).text() 


            id_of_hotel = $(this).attr('inv.hotel_id'); 

            if(choice == "Normal"){ 
             $("tr.false").show() 
             $("tr.true").hide() 
            }else if(choice == "Special"){ 
              $("tr.false").hide() 
              $("tr.true").show() 
             // else if(choice == "4"){ 
             // $("tr.false" + id_of_hotel).show() 
             // $("tr.true" + id_of_hotel).hide() 
             // } 
             // else if(choice == "2"){ 
             // $("tr.false." + id_of_hotel).show() 
             // $("tr.true" + id_of_hotel).hide() 
              } 
            } 

              $(this).closest(".dropdown").find(".btn").text(choice) 

     // $(".btn").text($(this).text()); 
     // $(".btn").val($(this).text()); 
     }); 
    }); 
</script> 
+0

javascriptコンソールにはどのようなエラーがありますか? – Boltz0r

+0

私はあなたのことを嫌っていますが、混乱していることがいくつかあるようです。すなわち、サーバー側/クライアント側、およびhtmlクラス/属性は何ですか。私があなたに与えることができる最高のアドバイスは、これらのものが何であるかを学ぶことです。 – DickieBoy

答えて

0

私は、数字で始まるクラス(または、数字のみ)は​​HTMLで許可されていないと考えています。どちらの方法でも、javascriptは存在しない "inv.hotel_id"という属性を参照しようとしています。なぜなら、クライアント側でそのような名前にリンクされるデータを決して指定しなかったからです。要素の唯一の属性はclassstyleです。そのようなデータをjavascript/jQueryに渡すよりエレガントな方法は、おそらくdata-*属性を使用しています。したがって、このような何か:あなたはそのデータ属性を参照したい場合は

<tr data-id="<%= inv.hotel_id %>"> 

はその後、あなたは$(this).data("id")を使用することができます。

true/falseクラスは、オブジェクトを参照するために使用する方法のために使用できます。クラスとid:セレクタには適していますが、その他のデータには適していません。

+0

ありがとうございました –

関連する問題