在GWT中,如何获取HTML DOM中元素的所有属性?

时间:2011-02-26 10:43:08

标签: gwt

我在com.google.gwt.dom.client.Element类上看不到任何允许我获取元素节点的所有属性的方法。我错过了什么吗?

据推测,我可以通过删除本机代码来获取底层Javascript对象的属性数组?我知道结果依赖于浏览器,但似乎已知有相关的解决方法。我没有太多地投入原生JS,所以如果有人能告诉我该怎么做,那将是一个奖励。

1 个答案:

答案 0 :(得分:10)

我在GWT中找了一个方便的方法,但是我找不到一个很惊讶。

  

据推测,我可以通过删除本机代码来获取底层Javascript对象的属性数组?我知道结果取决于浏览器,......

是的,使用JSNI,您可以定义一个方法,将元素的“attributes”属性作为合适的Java对象返回:

public static native JsArray<Node> getAttributes(Element elem) /*-{
   return elem.attributes;
}-*/;

你可以像这样使用它:

final JsArray<Node> attributes = getAttributes(element);
for (int i = 0; i < attributes.length(); i ++) {
    final Node node = attributes.get(i);
    String attributeName = node.getNodeName();
    String attributeValue = node.getNodeValue();
    ...
}