【问题标题】:Rails 4: select DOM element with dynamically generated idRails 4:选择具有动态生成 id 的 DOM 元素
【发布时间】:2016-02-22 13:13:36
【问题描述】:

在我的 Rails 4 应用程序中,我的一个视图具有以下 DOM 结构:

<tr id="post_row_<%= post.id%>">
  [...] # Truncated for brivety
  <td class="cell_content_center post_approval_section">
    [...] # Truncated for brivety
  </td>
</tr>

我需要用 JavaScript 更新 td 的内容。

为了选择它,我尝试了:

$('tr#post_row_<%= j post.id %> > td.post_approval_section').html('<%= j render(partial: "calendars/post_approval") %>');

但这给了我一个错误:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

如您所见,父trid 是动态生成的。

如何使用 JavaScript 选择它?

【问题讨论】:

  • 从哪里选择?你怎么知道你需要到达哪个小区?
  • 请提供error 500发生时来自服务器的日志
  • 嗨,您想从哪个 JavaScript 函数(如 onclick 函数或 on doucument.ready 函数)更改 tr 的数据?
  • 单引号不会被 ruby​​ 解析,因此您的 jquery 看起来与您的代码完全相同,请参阅下面的解决方案。
  • @dandavis 我需要在trid 'post_row_' 中选择类'post_approval_section' 的'td'。每页只有一个。你是这个意思吗?

标签: javascript jquery ruby-on-rails ruby-on-rails-4 dom


【解决方案1】:

使用双引号(" ") 代替单引号(' ') 比如:-

$("tr#post_row_<%= j post.id %> > td.post_approval_section")

【讨论】:

  • 感谢您的回答。我试过了,但似乎没有选择任何td
【解决方案2】:

使用双 " 和 #{} 表示法:

$("tr#post_row_#{post.id} td.post_approval_section")

【讨论】:

  • 感谢您的回答。我试过了,但似乎没有选择任何td
【解决方案3】:

此代码 sn-p 将找到 id="post_row_&lt;%= j post.id %&gt;" 的 tr。然后在tr 里面,它会找到td class="post_approval_section"。

$("tr#post_row_<%= j post.id %>").find('td.post_approval_section');

【讨论】:

  • 这将找到 id 为 "post_row_" 的 tr。然后在具有该 ID 的 tr 中找到具有类“post_approval_section”的 td。
猜你喜欢
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
  • 2011-06-15
相关资源
最近更新 更多