prototype:循环使用每个并按类名选择子级

时间:2013-06-03 08:23:03

标签: prototypejs

我有以下结构:

html结构:

<table class="structure">
<tr>
    <td class="id"> 
        <div class="product-id">123</div>
    </td>
    <td class="article">
        <ul name="attribute[151]">
            <li class="active"> <a href="..." rel="1">A</a></li>
            <li><a href="..." rel="2">B</a></li>
        </ul>
    </td>
</tr>
<tr>
    <td class="id"> 
        <div class="product-id">456</div>
    </td>
    <td class="article">
        <ul name="attribute[151]">
            <li class="active"> <a href="..." rel="1">A</a></li>
            <li><a href="..." rel="2">B</a></li>
        </ul>
    </td>
</tr>
</table>

我想循环每个tr元素以获取具有类活动的li元素。我选择tr因为我也想选择product-id。 如何在每个循环中选择一个css选择器?

原型:

 $$('.structure tr').each(
            function (index) {
                    //wrong
               console.log(index.down(".article li.active a'").readAttribute('rel'));
            }
        );

    }

1 个答案:

答案 0 :(得分:2)

所以你可以像这样简化你的javascript

$$('.structure tr').each(
        function (index) {

           console.log(index.down('li.active a').readAttribute('rel'));

                //wrong
           console.log(index.down(".article li.active a'").readAttribute('rel'));
                //       extra single quote           ^^^^
        }
    );

}

down()方法中还有一个额外的单引号(')可能会混淆CSS选择器引擎(Sizzle)