如何通过Javascript定位另一个元素

时间:2015-11-20 06:02:50

标签: javascript html jsf

我的jDeveloper版本为 11.1.1.9.0

我知道通过clientListener标记定位元素。但这将只给我一个引用它的元素的引用。如果我想根据它在jDeveloper中声明的ID来定位页面上的另一个元素,该怎么办?例如:

<af:inputText label="Label 1" clientComponent="true" id="it15"> // what's declared in jDeveloper

将其呈现为HTML:

<input type="text" class="x25" name="r1:0:it15" id="r1:0:it15::content">

注意it15如何转换为r1:0:it15。因此,执行以下操作无法获取对元素的引用:

document.getElementById("it15"); // returns null  
AdfPage.PAGE.findComponent("it15"); // returns undefined

这让我想到以下问题:

  1. 为什么在呈现HTML时ID会发生变化?

  2. 如果元素的ID由随机预先添加,我将如何定位该元素 字符串?

  3. 有没有办法获取该随机字符串而不是硬编码 使用控件ID?

1 个答案:

答案 0 :(得分:1)

如果您只使用直接的DOM,则可以使用查询选择器:

document.querySelector('[id$=it15]')