我正在使用 jQuery AutoSuggest 插件:
http://code.drewwilson.com/entry/autosuggest-jquery-plugin
我想访问 AutoSuggest 插件从我的 Delphi 6 代码中累积的值。问题在于 AutoSuggest 插件在您执行提交操作之前临时存储累积值的方式。据我所知,它没有提供直接属性来从中获取累积值。相反,它操纵 DOM 树并创建一个隐藏的文本元素,其 ID 包含随机生成的数字后缀(根据 AutoSuggest 描述网页)。这是一个例子:
<input type="hidden" class="as-values" name="as_values_067" id="as-values-067" value="robotics,monkeys,">
请注意随机生成的 ID 属性后缀 (as-values-067)。
为了获取元素,以便我可以获取value属性并将累积的值带入我的 Delphi 6 代码中,我正在执行完整的 DOM 节点树扫描,以查找 AutoSuggest 使用原始 AutoSuggest 编辑框的 NAME 属性创建的可见节点元素(“editEvernoteTags”):
然后我从 ID 属性中提取数字后缀(上例中为 67),然后使用附加到字符串“as-values”的那个值搜索隐藏的文本元素。这允许我使用Chromium 的 getElementById() 方法使用该 ID(上例中的as-values-067 )搜索隐藏的文本元素。
这显然有点混乱,我宁愿只在一次操作中获取累积值。有谁知道如何从 Delphi 代码中做到这一点?