【问题标题】:How can I access Checkboxes in a dynamically created tr using Jquery (Not delegation)如何使用 Jquery 访问动态创建的 tr 中的复选框(非委托)
【发布时间】:2017-06-01 18:39:40
【问题描述】:

我有一个可以动态添加 tr 的表。 tr 包含表示团队成员是否具有特定角色的复选框 - 这是通过该角色的利用率大于 0 来定义的。角色和利用率在对话框中设置。当针对团队成员保存对话框值时,将为每个不同的角色类型调用以下方法。

if (teamMember.designerUtil > 0) {
  $('tr', '#my-table').eq(tableRow).find("#designerCheck").prop("checked",true);
}

我想要实现的是在 tr 上为在模式检查中设置了角色的团队成员设置复选框,当他们被赋予角色时。上面的代码仅适用于页面加载时创建的 tr,不适用于任何动态创建的。我已阅读有关事件委托的信息,但我认为没有要附加的事件。我只想使用 Jquery 检查复选框,而不是启动事件。

Image showing dialog box and table with checkboxes

【问题讨论】:

  • 我认为问题出在执行顺序上。您确定在运行发布的脚本时创建了表行吗?你能提供更复杂的例子吗?
  • 在创建新复选框后,您是否尝试过使用相同的代码?
  • 请提供minimal reproducible example。另请注意,ID 不能在页面中重复,它们在定义上是唯一的
  • 不是执行顺序的问题,行添加,行有打开对话框的按钮。然后在关闭对话框时,应通过复选框传达已选择的角色。如果我想通过单击复选框来触发事件,我可以使用委托,但我无法使用 javascript/jquery 检查它,这是我想要实现的。

标签: javascript jquery html checkbox


【解决方案1】:

如果您所说的“动态添加”是指在页面加载时由 javascript 创建,您应该能够使用文档就绪功能执行您的代码:

https://learn.jquery.com/using-jquery-core/document-ready/

如果您所说的“动态添加”是指由 ajax 调用创建,您应该能够使用 ajaxComplted 来获得您正在寻找的行为。

http://api.jquery.com/ajaxcomplete/

【讨论】:

  • 通过动态添加是指在页面加载后,通过单击使用 javascript/jquery 的按钮在表格中追加一行,
  • 您是否在按下按钮调用的代码末尾调用 tr 代码?另外,您是否使用诸如 firefox 中的检查器工具(工具->web 开发人员->调试器->(左下角的检查器按钮)之类的工具查看了 html。生成的 html 可能与您的想法和xpath 查询可能不完全正确。
猜你喜欢
  • 2011-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-24
  • 2012-09-20
  • 1970-01-01
相关资源
最近更新 更多