Angenommen, ich habe die folgende Markup
<div><p></p><blockquote></blockquote><ul>...</ul></div>
<div><p></p><blockquote></blockquote><ul>...</ul></div>
...
<div><p></p><blockquote></blockquote><ul>...</ul><ul></ul></div>
Gibt es eine jQuery-Selektor/Traversal-Technik, die ich verwenden kann, um das n-te Kind zu erhalten, das mit einem komplexen Selektor in jedem Div übereinstimmt, der robust ist (in dem Sinne, dass ich Elemente ändern kann, die nicht durch den Selektor übereinstimmen, ohne die Dinge durcheinander zu bringen)
Hier sind einige Ansätze, die nicht funktionieren, um das Problem zu verdeutlichen
$("div").children("p, ul").filter(":eq(1)") // returns just the first <ul> in the first div
$("div").children("p, ul:eq(1)") // returns all the p's and the first ul in the first div
$("div").find(":not(blockquote):eq(1)") //returns the correct elements, but at the expense of having to reference the elements we're *not* after. Also not restricted to just children
$("div").find(">:not(blockquote):eq(1)") ) // tackles the children problem, but ">" without a parent is not officially supported and jQuery want to deprecate (Can't find the reference but I raised it once in discussion on the jQuery bug boards and John Resig himself said this)
Schließlich für einige Kontext, ich frage dies, um immer die i-te Spalte einer Tabelle zu finden, unabhängig davon, ob die erste Spalte enthält oder nicht th
ou td
Zellen