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> 

我想将 传递User id给 javascript,我正在尝试这样做:var u_id = document.getElementById('id')但它说 u_id 为空,我可以通过谁?谢谢!

4

3 回答 3

4

您应该直接在 JavaScript 代码中编写变量:

var u_id = <%= @id %>;

实际上,当您document.getElementById()在 JavaScript 中使用时,您会得到一个 DOM 元素。而不是变量@id。对于 JavaScript ,该变量@id不存在。

为什么?

我猜你正在使用 Rails。@id是一个 Rails 变量。Rails 在将最终的 html 页面发送给用户之前编译模板(在服务器上)。这意味着它用<% %>每个纯文本块的结果替换所有的。

JavaScript 然后在客户端浏览器上运行。它不知道Rails。

当您这样做时,var u_id = <%= @id %>;Rails 会将其编译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 回答