2010-06-01 3 views
0

Я пытаюсь получить некоторую информацию о ребенке элементе li с использованием MooTools, по существу мой HTML выглядит следующим образом,mootools получить данные дочернего элемента li?

<li><a href="/home" id="home" class="nav-link">Home</a></li>

Я хотел, чтобы иметь возможность получить идентификатор, класс и HREF из тег, использующий mootools, до сих пор мой javascript похож на этот,

$$('.rate').each(function(element,i){ 
element.addEvent('click', function(){ 
    var myStyles = ['nostar', 'onestar', 'twostar', 'threestar', 'fourstar', 'fivestar', 'sixstar', 'sevenstar', 'eightstar', 'ninestar', 'tenstar']; 
    myStyles.each(function(myStyle){ 
     if(element.getParent().hasClass(myStyle)){ 
      element.getParent().removeClass(myStyle) 
     } 
    });  
    myStyles.each(function(myStyle, index){ 
     if(index == element.id){ 
      element.getParent().toggleClass(myStyle); 

      var req = new Request({ 
       method:'post', 
       url: '/recipes/save', 
       data: {'rating' : element.id}, 
       onRequest: function(){ alert('Request made. Please wait...');}, 
       onComplete:function(response){ alert('Response:' + response);} 
      }).send(); 
      alert('Clicked '+element.id); 
      alert(element.getChildren().get('href'); 
     } 
    });  

}); 

});

Последнее предупреждение в скрипте - это моя попытка дочернего элемента li (element) и его href.

+0

Ха, ха, библиотеки JavaScript. –

+0

полезно спасибо ... –

ответ

0

Все эти свойства подвергаются изначально как:

<elem>.id 
<elem>.href 
<elem>.className 

Если element содержит ссылку на объект <li> DOM, вы можете получить ребенка <a> и все три свойства, как:

var anchor = $$("li").getFirst("a"); 
anchor.id 
anchor.href 
anchor.className 

Или как говорит Оскар, если вы не хотите беспокоиться о проблемах с несколькими браузерами, лучшей альтернативой является использование метода get в Элементе/Элементах для их получения:

anchor.get('id') 
anchor.get('href') 
anchor.get('class') 
+1

'$$ ('li')' - обратите внимание на двойной доллар. Кроме того, это безопаснее, чем это делает MooTools: 'el.get ('id')', 'el.get ('href')' и 'el.get ('class')' –

+0

благодарит Оскара , Я всегда забываю двойной доллар! – Anurag

1

Это утверждение ваш неверен if(index == element.id){ ..., index всегда число, вам нужно заменить его myStyle. Доказательство: http://jsfiddle.net/fJDZJ/

После этого просто сделайте el.get('id'), el.get('href') и el.get('class');

Или el.getElement('a').get('id');, если вам необходимо получить идентификатор дочернего А.

Смежные вопросы