0
<%= semantic_form_for :.........  do |f| %>
<%= f.inputs do%>
    <%= pluralize @size, 'Profitable Routes to test'%>
    <p>User id: <%= @id %><p>
    ....

<title> audio player</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link href="/skin/pink.flag/jplayer.pink.flag.css" rel="stylesheet" type="text/css" />

    <script type="text/javascript">
    $(document).ready(function(){
        var u_id = document.getElementById('id')
        $("#jquery_jplayer_1").jPlayer({
            ......
                ......
                ......
                .......
        });
    });
        //]]>
    </script> 

私はjavascriptに渡したいのですがUser id、これでそれを行おうとしています:var u_id = document.getElementById('id')しかし、u_idがnullであると表示されていますが、誰に渡すことができますか?ありがとう!

4

3 に答える 3

4

変数はJavaScriptコードで直接記述する必要があります。

var u_id = <%= @id %>;

実際document.getElementById()、JavaScriptで使用すると、DOM要素を取得します。そして、変数ではありません@id。JavaScriptの場合、変数@idはイベントに存在しません。

なんで?

Railsを使用していると思います。@idRails変数です。Railsは、最終的なhtmlページをユーザーに送信する前に、(サーバー上で)テンプレートをコンパイルします。<% %>これは、すべてをプレーンテキストである各ブロックの結果に置き換えることを意味します。

次に、JavaScriptがクライアントブラウザで実行されます。Railsを認識していません。

Railsを実行すると、クライアントブラウザに送信されるvar u_id = <%= @id %>;ようなものにコンパイルされます。var u_id = 198297;その後、JavaScriptは満足し、変数は正しく設定されます。

于 2013-03-13T13:43:02.503 に答える
0

document.getElementById('id')は要素であり、その値ではありません。次のようなものを使用する必要があります

id = document.getElementById('id').innerHTML;
于 2013-03-13T13:43:20.877 に答える
0

u_idはdom要素です。この要素の属性を選択する必要があります

u_id.value

また

u_id.innerHTML

jqueryで:

u_id.val()
u_id.html()
于 2013-03-13T13:43:36.067 に答える