2013-03-07 4 views
2

Скажем, у меня есть HTML часть в моем GWT приложения:Как получить элемент «родительский» с GWT

<ul> 
     <li id="tray-active"><a data-field="home">Homepage</a></li> <!-- Active page --> 
     <li><a data-field="news">News</a></li> 
     <li><a data-field="products">Products</a></li> 
     <li><a data-field="sales">General Sales T&C</a></li> 
     <li><a data-field="job">Job Opportunities</a></li> 
    </ul> 

И я могу получить AnchorElement, скажем, для HomePage:

@Inject @DataField Anchor home; 

Как я могу получить элемент List li?

Is: home.getParent(); // which returns a widget? Затем отбросьте его до UListElement? Это оно?

Update:

Моя главная цель состоит в том, чтобы установить идентификатор li элемента «лоток активным», так что, когда элемент анкер щелкнул «родительский» li элемент установлен в в «tray- активный "

ответ

5

Не нужно ничего бросать.

вы можете сделать это:

home.getParent().getElement().setId("tray-active"); 

API

+0

Пробовал это, но это не сработало ... – xybrek

+0

вы протестировали ?? firebug? Что происходит в id-атрибуте li eliment? –

+1

альтернативно com.google.gwt.dom.client.Document.get(). GetElementById ("homelinkid"). GetParentElement(). SetId ("tray-active"). –

2

Это должно дать вам элемент объект, который вы хотите:

anchor.getElement().getParentElement() 

где якорь ваш якорь элемент.

anchor.getElement() 

Дает элемент и анкера

anchor.getElement().getParentElement() ; 

даст вам родительский элемент на якорь, который в вашем случае должен быть литиево элемент

Теперь, если вы хотите установить атрибут к этому элементу, например id, выполните следующие действия:

anchor.getElement().getParentElement().setAttribute("id", "li_id") ; 
Смежные вопросы