Frage

kann jeder einen Wähler bietet mit diesem schrecklichen Stück Code zu tun, weg:

// img is the image element...
var descriptionContent = $(".descriptionContent", img.parent("td").parent("tr").next("tr"));

Die HTML sieht wie folgt aus:

<table>
    <tr>
        <td><img /></td>
    </tr>
    <tr>
        <td><div class="descriptionContent" /></td>
    </tr>
    <!-- Repeat n times -->
</table>

Da ein Benutzer auf dem img geklickt hat, muß ich das nächste (und nur das nächste) .descriptionContent Element erhalten.

Danke,
K

War es hilfreich?

Lösung

Da Sie sind besorgt über das Bild in etwas Umwickeln Versuchen Sie folgendes:

var descriptionContent = $(".descriptionContent", img.closest("tr").next("tr"));

Der nächste Befehl findet die nächsten Vorfahren den gegebenen Selektor entsprechen. hier.

Andere Tipps

Ich denke, du wirst viel über die Art und Weise zu hören, dies im Allgemeinen strukturiert ist. Wenn Sie die Tabelle beseitigen, viel dieses Problem geht weg.

So etwas wie:

<div class="imgAndContent">
  <img src="blah.jpg">
  <span class="someDescription">Description.</span> <!-- or div, you choose based on your need -->
</div>

Dann können Sie einfach tun ...

var descriptionContent = $(this).next();

Wenn der Benutzer klickt ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top