0

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

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

我希望能够使用 mootools 获取 a 标签的 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(element) 的子元素及其 href 的尝试。

4

2 回答 2

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 的 ID。

于 2010-06-01T11:02:47.970 回答
0

所有这些属性都以本机方式公开:

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

如果element包含对<li>DOM 对象的引用,您可以获得子对象<a>和所有三个属性:

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

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

anchor.get('id')
anchor.get('href')
anchor.get('class')
于 2010-06-01T10:06:47.050 回答