为什么element.getElementsByTagName()无法选择动态添加的节点?

时间:2010-03-05 09:53:32

标签: gwt templates getelementsbytagname

final Button sendButton = new Button("Send");
sendButton.getElement().setId("button");
RootPanel.get().getElement().appendChild(sendButton.getElement());

NodeList buttonElement = Document.get().getElementsByTagName("button");
if(buttonElement != null && buttonElement.getLength() > 0){
buttonElement.getItem(0).setNodeValue("Changed");
}else{
GWT.log("Can't select button");
}

当我使用getElementById()时,它没关系,但是getElementsbyTagName()方法不起作用。 这意味着我无法使RPC服务返回html字符串响应,并在客户端附加事件。我在这里有点困惑,如何在GWT中编程?我的意思是RPC服务应该返回客户端,BO?如果返回BO,我需要序列化BO,并创建构造dom树的元素。这是一个麻烦,所以任何想法在GWT中使用模板?

1 个答案:

答案 0 :(得分:0)

我不确定你为什么要使用元素做任何事情,或者如果你仍然有参考它,为什么你需要找到按钮。您的代码可以重写为:

final Button sendButton = new Button("Send");
RootPanel.get().add(sendButton);

// presumably some RPC is done here...?
onSuccess() {
  sendButton.setText("Changed");
}

如果您提供有关您要完成的内容的更多详细信息,这可能会有所帮助。什么是BO?