mootools获取li的子元素的数据?

时间:2010-06-01 09:39:52

标签: javascript dom mootools getelementbyid

我正在尝试使用mootools获取li的子元素的一些信息,基本上我的html看起来像这样,

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

我希望能够使用mootools获取标签的id,class和href,到目前为止我的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(元素)及其href的孩子的尝试。

2 个答案:

答案 0 :(得分: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');如果你需要获得孩子A的身份证。

答案 1 :(得分:0)

所有这些属性本身都公开为:

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

如果element包含对<li> DOM对象的引用,则可以将子<a>和所有三个属性设为:

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

或者正如Oskar所说,如果您不想担心跨浏览器问题,更好的选择是使用Element / Elements中的get方法来检索这些:

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