Übergeben von Argumenten und Werten von HTML, jQuery (Veranstaltungen)
Was ist die Praxis, Argumente übergeben von HTML, jQuery events-Funktion.
Zum Beispiel bekommen die id der Zeile aus db:
<tr class="jq_killMe" id="thisItemId-id">
...
</tr>
und jQuery:
$(".jq_killMe").click(function () {
var tmp = $(this).attr('id).split("-");
var id = tmp[0]
//...
}
Was ist die beste Praxis, wenn ich will, passieren mehr als einem argument?
Ist es besser, nicht zu verwenden jQuery? Zum Beispiel:
<tr onclick="killMe('id')">
...
</tr>
Finde ich nicht die Antwort auf meine Frage, ich werde froh sein, auch für die links.
Danke.
Bearbeiten (vor der Lösung)
Also die von Ihnen vorgeschlagenen zwei Methoden das zu tun:
- Fügen Sie benutzerdefinierte Attribute zu element (XHTML)
- Das Attribut ID verwenden, und analysieren Sie es durch regex
- Attribut data -* - Attribute in HTML5
- Verborgenen Kinder Elemente
Ich mag die erste Lösung, aber... ich möchte (ich habe zum (Arbeitgeber -)) Gültiger code. Hier ist eine schöne Frage und Antworten:
Was also, wenn Sie benutzerdefinierte HTML-Attribute sind nicht valides XHTML?
Und das zweite ist nicht so schön wie der erste, aber gültig. Also, der Kompromiss ist...
Die Dritte ist die Lösung für die Zukunft, aber hier ist eine Menge CMS, wo wir mit XHTML oder HTML4. (Und HTML5 ist der lange Prozess)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der einfachste Weg, dies zu tun ist, um die Informationen in benutzerdefinierten Attributen, wie diese:
Denken Sie daran, richtig zu entkommen, die Werte, um zu verhindern, XSS.
Und was ist mit verschachtelten Elementen?
Aber es gibt einige Fragen:
Bearbeiten
Bessere Weg ist die Verwendung
<input type="hidden" />
und jQuery scheint, wie diese
Können Sie wählen zwischen verschiedenen Möglichkeiten, je nachdem, wie viele Parameter, die Sie benötigen.
Wenn Sie mehr als eine haben, können Sie entweder fügen Sie benutzerdefinierte Attribute, aber nicht html-konform ist.
Manchmal müssen Sie möglicherweise auch zum einbetten der Werte innerhalb der id, wie Sie tun:
Aber ich würde das in etwa so machen:
wo die 1 ist die id, und verwenden Sie dann RegEx zu tun, anstatt die split:
Es hängt vom Kontext ab. Express die Daten in die semantisch entsprechenden Weise.
Könnte es eine Klasse verwenden. Es könnte Nutzung von Daten in eine Zelle innerhalb der Zeile. Es könnte Nutzung von Daten in einem Attribut eines Elements in einer Zelle (z.B. eine URI in dem href eines anchor).
Gibt es nicht eine generische Lösung, die ist immer am besten.
Andere option ist die Bereitstellung der Daten über ein script und verwenden Sie dann die Zeilen-id zu suchen.
z.B.
dann Suche die Daten mit den folgenden: