pyquery icon indicating copy to clipboard operation
pyquery copied to clipboard

:first and :nth-child(x) not behaving as expected

Open sergei-maertens opened this issue 9 years ago • 0 comments

HTML structure:

Even in simpler cases it's returning multiple elements:

<!doctype html>
<table>
    <tr>
        <td class="title" rowspan="2">...</td>
        <td>...</td>
        <td rowspan="2">...</td>
        <td class="subtable">
            <table>
                <tbody>
                    <tr>
                        <td>...</td>
                    </tr>
                    <tr>
                        <td>2 maanden:</td>
                        <td>€110,-</td>
                    </tr>
                    <tr>
                        <td colspan="2"></td>
                    </tr>
                    <tr>
                        <td><strong>Jaarabonnement:</strong></td>
                        <td>€1.230,-</td>
                    </tr>
                    <tr>
                        <td></td>
                        <td></td>
                    </tr>
                    <tr>
                        <td colspan="2">Corporate: ...</td>
                    </tr>
                </tbody>
            </table>
        </td>
    </tr>
</table>

On the top row level I need to find the column contents, so I'm doing:

element.find(':first')

which returns td.title, td, td and td.subtable, where I'd expect just td.title. Element is a pq element of the parent row.

When trying to select the td after td.title

element.find('td:nth-child(2)') 

it's completely skipping the direct children and instead looking in the td.subclass

sergei-maertens avatar Oct 27 '14 14:10 sergei-maertens