如何找到动态生成的HTML元素?

时间:2010-07-22 19:21:11

标签: javascript telerik radgrid radcombobox

当RadGrid离开编辑模式时,我需要获取RadComboBox的客户端实例(或新选择的RadComboBox值),以便将更改后的值发回服务器。

问题是,对象的客户端ID始终会更改。此外,RadComboBox不是在运行时创建的 - 它们仅在用户双击我的RadGrid的特定行之后创建。因此,语法如

var SundayLoc = $find("<%= FieldOpsScheduler_ctl00_ctl05_RCB_SunLocale.ClientID %>");

等于失败。在我开始改变价值观之前,我能够摆脱这个:

var SundayLoc = $find("FieldOpsScheduler_ctl00_ctl05_RCB_SunLocale");

每次都很好用,直到我添加了一些行分隔符对象,这些对象现在导致id的“ctl05”总是根据用户进入编辑模式的行而改变。我已尝试使用获取此对象及其价值的所有事项,但无济于事。

我打算尝试使用正则表达式,直到读完bobince在RegEx match open tags except XHTML self-contained tags的社区wiki回答后才让我意识到用正则表达式解析HTML的诱惑是撒旦邪恶的产生(在进一步研究之后,我得出的结论是,正则表达式可能对我不起帮助。)

无论如何,如果有人能以我的方式提出一些想法,我会非常感激。提前谢谢。

2 个答案:

答案 0 :(得分:0)

  • 在服务器端创建某种列表以跟踪控件ID
  • 当你因任何原因渲染页面时,将这些id写在脚本块中(将它们放入数组或其他任何内容中)
  • 当您需要提交值时,可以使用javascript数组内容来引用控件。

你可能需要做更多的工作来找到你的实际价值。对于ingragistics的花式裤子控制,他们提供了一种特殊的方法来获取有关“控制”整体的信息。 rad控件可能有类似的东西。

答案 1 :(得分:0)