2017-01-11 6 views
1

私はJavascriptとhtmlの初心者です。私はレール上のHTMLテーブルに行を追加するjavascriptタグを作成しました。スクリプトタグが実行されていないようです。私も同様のエラーを取得していません。あなたのscriptあなたが使用しているindex変数を任意の値に設定されていない中で判明したようJavascriptタグがhtmlのレールに表示されない

<script type="text/javascript"> 

    //Make a javascript array from a Ruby array 
    //Use the array to create tables in html with proper value 
    var myArray = new Array(); 
    <%@array.each_with_index do |name, index|%> 
    myArray[index] = <%= name[:employee]%> 
    <%end%> 

    var arraylen = myArray.length; 

    //Javascript function to add table 

    $(function() { 
    var table = document.getElementById("table"); 
    for (var i = 0; i<arraylen; i++){ 

     var row = table.insertRow(index); 
     var name = myArray[i] 
     row.insertCell(0).innerHTML = name.value; 
    } 
    })(); 

</script> 
+0

これは変更があるかどうかわかりませんが、 '<%= name [:employee]%>'を次のように二重引用符で囲んでみてください。 'を配列インデックスに代入すると、 – Deep

+0

私は試しました。しかし、変化はありません。私はalert()も追加しました。およびconsole.log();スクリプトタグの内側には出力が表示されません。 –

+0

あなたがテストするためにできることは、ダミーの配列を作成し、ブラウザコンソールから '$(function()){}'の中にあるコードを実行し、何かを追加するかどうかを確認することです。あなたが成功すれば、あなたのコードは正しいですし、他の問題があります。 – Deep

答えて

1

。代わりにiを使用するか、必要な値を設定することができます。

はまた、あなたは、文字列の引用符の内側にそれを置く必要があります StringとしてJavaScriptに値を割り当てるたびにそう erbの構文を使用してjavascript配列に値を代入しています。このように:

myArray[index] = "<%= name[:employee]%>" 

だから、値があなたのjavascript配列にStringとして割り当てられます。

関連する問題