it-swarm.com.de

JQuery wählt ein Element innerhalb eines TD aus

Ich möchte ein Element in der Tabelle td einer meiner Tabellen auswählen, aber ich verstehe die Syntax nicht wirklich. Das habe ich versucht:

$("table > td:#box")

Dies ist ein Beispiel meiner Tabellenstruktur:

<div id="main">
<div id="today">
    <table id="list" width="100%" cellpadding="4" cellspacing="0" border="0" style="font-size: 10px; border-collapse:collapse;">
    <tr id="109008">
    <td class="tdstd">
    <a class="box" href="link"></a>
    </td>

Oder mit Chrome DOM Inspector:

alt text

11
Roch

Nun, "#box" bedeutet ein DOM-Objekt mit der ID "box", da es sich hierbei um eine eindeutige ID handelt. Sie können diesen direkt auswählen. Ihr Code legt jedoch nahe, dass Sie mehrere Elemente mit der ID "Box" haben, die Sie ändern müssen. Sie sollten Ihrem Element im TD eine Klasse zuweisen. Wenn es einzigartig ist, da es sich um das einzige DIV oder SPAN in der Box handelt, können Sie wie folgt darauf zugreifen:

$("table td .box")

Beachten Sie, dass der Selektor ">" bedeutet, dass TD ein direktes untergeordnetes Element von TABLE sein muss, und ich gehe davon aus, dass Sie mindestens eine TR-Stufe dazwischen haben, sodass dies auch nicht funktioniert. In meinem obigen Beispiel wird jedes Element mit der Klasse "box" in einem beliebigen TD, das ein untergeordnetes Element ist, mit einer TABLE verglichen.

Natürlich würde ich auch eine Klasse auf den Tisch legen und so etwas verwenden:

$("table.boxes td .box")

Nur damit Sie nicht versehentlich Dinge außerhalb des Bereichs auswählen, in dem Sie arbeiten möchten.


Sie haben jetzt HTML hinzugefügt, also bearbeite ich meine Antwort:

$("table#list a.box")
17
Sandman

Der effizienteste Wähler wäre:

$('#list').find('a.box');

oder:

$('a.box', $('#list')[0]);

Wenn Sie zuerst die Tabelle id auswählen, haben Sie den Gültigkeitsbereich auf die Tabelle festgelegt. Anschließend können Sie in dieser Tabelle nach dem gewünschten Element suchen.

Die zweite Auswahl ist genau dieselbe, Sie wählen etwas aus und geben den Bereich als zweiten Parameter an.

Es ist nur einfacher, den ersten zu lesen.

9
Bjarki Heiðar
 $("table tr td .box")

Sollte den Trick tun.

2

Diese Auswahl ...

table td a.box

weist jQuery an, den Tag a mit einem class-Attribut zu finden, das "Box" enthält. Dieses a-Tag muss sich innerhalb einer td befinden, die sich innerhalb einer table befindet.

0
Josh Stodola