我在com.google.gwt.dom.client.Element类上看不到任何允许我获取元素节点的所有属性的方法。我错过了什么吗?
据推测,我可以通过删除本机代码来获取底层Javascript对象的属性数组?我知道结果依赖于浏览器,但似乎已知有相关的解决方法。我没有太多地投入原生JS,所以如果有人能告诉我该怎么做,那将是一个奖励。
答案 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();
...
}