mootools получает данные дочернего элемента li? - PullRequest
0 голосов
/ 01 июня 2010

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

<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');
        }
    });     

});

}); * * 1 010

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

Ответы [ 2 ]

1 голос
/ 01 июня 2010

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

После этого просто выполните el.get('id'), el.get('href') и el.get('class');

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

0 голосов
/ 01 июня 2010

Все эти свойства доступны как:

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

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

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

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

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