2011-02-26 17 views
6

Bir öğe düğümünün tüm özelliklerini almama izin veren com.google.gwt.dom.client.Element sınıfında herhangi bir yöntem göremiyorum. Bir şey özledim mi?GWT'de, bir öğenin tüm özelliklerini HTML DOM'ta nasıl alabilirim?

Muhtemelen, temel kodun içine düşerek temeldeki Javascript nesnesinin öznitelik dizisini alabilirim? Sonuçların tarayıcıya bağlı olduğunu biliyorum, ancak bunun için bilinen çözümler var gibi görünüyor. Yerli JS'ye fazla dalmadım, bu yüzden birisi bana nasıl yapılacağını gösterebilirse, bu bir bonus olur.

cevap

10

GWT'de bir kolaylık yöntemi aradım, ancak bir tane bulamadığım için şaşırdım.

Muhtemelen temel kodun içine düşerek temeldeki Javascript nesnesinin öznitelik dizisini alabilirim? Ben

Evet, JSNI ile, sen eleman en uygun Java nesne olarak mülkiyet "özellikleri" döndüren bir yöntem tanımlayabilirsiniz ... sonuç tarayıcı bağımlıdır biliyorum:

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

Sen Bu gibi kullanabilirsiniz:

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(); 
    ... 
} 
+0

Teşekkür, bir gitmek vereceğiz. –

+0

minör nokta; elem.attributes bir dizi değil (bir tane gibi erişilebilir olsa da) - aslında bir https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap –

İlgili konular