Mootools从其父级获取元素的子索引

Pau*_*aul 7 javascript mootools

我在mootools中使用事件委托.我想知道点击的行号.我的解决方案显示在这个jsfiddle中:有没有比我目前做的更好的方法?

我的方法是比较元素,直到我找到匹配.我可以使用IndexOf方法吗?

(以下是来自jsfiddle的数据)

HTML:

<div id="Record_List">
    <div class="Row">
        <input type="submit" name="Row" value="Edit"/>
    </div>
    <div class="Row">
        <input type="submit" name="Row" value="Edit"/>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

window.addEvent(
    'domready',
    function()
    {
        $('Record_List').addEvent(
            'click:relay(input)',
            function(evt, target)
            {
                evt.stop();

                var rowElem = target.getParent();
                var rowNumber = -1;

                $('Record_List').getChildren('div.Row').each(
                    function (el, num)
                    {
                        if (rowElem === el)
                        {
                            rowNumber = num;
                        }
                    });

                // Find the position of the row and display it here:
                alert('Row number: ' + rowNumber);
            });
    });
Run Code Online (Sandbox Code Playgroud)

And*_*ker 9

包含方法Elements返回的type()包括.如果浏览器不存在,MooTools将提供该方法的实现.考虑到这一点,你可以写:getChildrenArrayindexOf

$('Record_List').getChildren('div.Row').indexOf(rowElem);
Run Code Online (Sandbox Code Playgroud)

更新示例: http ://jsfiddle.net/andrewwhitaker/uJarB/