0

limootools を使用して子要素の情報を取得しようとしています。基本的に、私の 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(要素) とその href の子に対する私の試みです。

4

2 に答える 2

1

このステートメントは正しくありませんif(index == element.id){ ...indexは常に数字です。 に置き換える必要がありますmyStyle。証明: http://jsfiddle.net/fJDZJ/

その後、el.get('id'), el.get('href')and el.get('class');を実行するだけです。

またはel.getElement('a').get('id');、子 A の ID を取得する必要がある場合。

于 2010-06-01T11:02:47.970 に答える
0

これらのプロパティはすべて、次のようにネイティブに公開されます。

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

DOM オブジェクトelementへの参照が含まれている場合、子と 3 つすべてのプロパティを次のように取得できます。<li><a>

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

または、Oskar が言うように、クロスブラウザーの問題を心配したくない場合はget、Element/Elements のメソッドを使用してこれらを取得することをお勧めします。

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