【发布时间】:2011-08-03 15:57:36
【问题描述】:
我今天的问题围绕着 Websphere JSP 环境中的 javascript 世界...
我的代码有点像这样:
<div id="randomDynamicId">
<input id="whatIwantToGetTo">
</div>
我知道我可以直接查找该 id,但这是在 Websphere 门户中,我“应该”能够通过 document.getElementById() 直接链接到它,但我总是需要获取前一个 div。
(它最终成为带有命名空间的 portlet id,因为有时这些 portlet 可能会被复制,所以我只想专门针对一个)
我有什么办法可以做到这一点?
提前致谢。
【问题讨论】:
-
如果你的代码被复制,以至于你得到多个嵌套的
<input>元素具有相同的“id”值,那就不好了。在任何给定页面上,“id”属性的值都必须是unique;这就是使它们成为标识符的原因。 -
@Goncalo:我认为这个问题有点不清楚。你想做什么?
whatIwantToGetTo的问题是不是以名称空间为前缀,因此您最终会在页面上出现多个具有相同id的元素?在这种情况下,请将您的 JSP 重写为命名空间中的所有id属性。 (无论如何,至少如果 portlet 有可能在 any 页面上出现多次!) -
@Gustav,它确实为外部 div id 和类生成命名空间,但还没有为输入生成命名空间,反正现在还没有,我真的不认为它会很快添加(我处于原型阶段)。但是感谢您清除它,使用名称空间和添加的 ID,我应该能够轻松访问它!请将此添加为答案,而不是作为评论,因为我想给你功劳。
-
你不是实际上使用JSF吗?是的?只需给组件及其父
UINamingContainer组件一个固定的id。它最终会像parentId:inputId。自己查看生成的 HTML 源代码。 -
@BalusC 事情是这样的,这是 IBM Portal Server... Portlet 出现在同一页面中……好吧,我为此编写的代码会到处乱七八糟。然而,我最终还是使用了门户服务器提供的命名空间检索。
标签: javascript html jsp websphere-portal websphere-7