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

Mic*_*Kay 6 gwt

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

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

Chr*_*her 10

我在GWT中寻找了一种方便的方法,但很惊讶我找不到一个.

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

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

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

你可以像这样使用它:

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();
    ...
}
Run Code Online (Sandbox Code Playgroud)