GWT提供了两种通过其唯一方式检索HTML元素的方法ID.
两者之间有什么不同(如果有的话):
获取与整个文档中给定唯一ID关联的元素.
@param id要检索其关联元素的id
@return关联元素,如果没有找到则返回null
返回其id由elementId指定的Element.如果不存在此类元素,则返回null.如果多个元素具有此id,则不定义行为.
@param elementId元素的唯一id值
@return匹配元素
Hil*_*amp 16
基本上没什么.在GWT生命周期的某个时刻,整个DOM相关代码被重写到dom包中.在每个HTML标记的新包中,可以使用特定的Element类,例如DivElement为这些标记提供特定的方法.例如,在您的示例中,如果您要使用它来查找div元素,您可以直接使用DivElement.两个版本的代码如下所示:
DivElement divID = (DivElement) Document.get().getElementById("divID");
Run Code Online (Sandbox Code Playgroud)
要么
DivElement divID = (DivElement) DOM.getElementById("divID").cast();
Run Code Online (Sandbox Code Playgroud)
为了向后兼容,保留了旧代码.所有Widget类都使用Element也返回的旧类DOM.getElementById.旧Element课程被改变并扩展新Element课程,没有任何额外的.所以它们基本相同.一般来说,你应该只使用Document.get().在使用元素时,这一切都会让人感到有些困惑.
看:
在 com.google.gwt.dom.client.Document
public final native Element getElementById(String elementId) /*-{
return this.getElementById(elementId);
}-*/;
Run Code Online (Sandbox Code Playgroud)
在 com.google.gwt.user.client.DOM
public static Element getElementById(String id) {
return Document.get().getElementById(id).cast();
}
Run Code Online (Sandbox Code Playgroud)
所以它只是一个"方便的包装方法".
但是,尽管他们都返回Element这些ARA Element从不同的包s,而既是Elements为JavaScriptObject并意味着同样的,你可以在它们之间施放忽略继承层次无论是用java投语法()或简便方法JavaScriptObject.<T extends JavaScriptObject> cast()
顺便说一句.文档是JSO覆盖类型所以"本机this"指向this;)
| 归档时间: |
|
| 查看次数: |
9809 次 |
| 最近记录: |