Ich versuche, alle <div>
s mit derselben ID in jQuery auszuwählen . Wie mache ich es?
Ich habe es versucht und es hat nicht funktioniert
jQuery('#xx').each(function(ind,obj){
//do stuff;
});
Ich versuche, alle <div>
s mit derselben ID in jQuery auszuwählen . Wie mache ich es?
Ich habe es versucht und es hat nicht funktioniert
jQuery('#xx').each(function(ind,obj){
//do stuff;
});
Antworten:
Ich würde verschiedene IDs verwenden, aber jedem DIV dieselbe Klasse zuweisen.
<div id="c-1" class="countdown"></div>
<div id="c-2" class="countdown"></div>
Dies hat auch den zusätzlichen Vorteil, dass die IDs basierend auf der Rückgabe von jQuery ('. Countdown'). Länge rekonstruiert werden können
Ok, was ist mit dem Hinzufügen mehrerer Klassen zu jedem Countdown-Timer? IE:
<div class="countdown c-1"></div>
<div class="countdown c-2"></div>
<div class="countdown c-1"></div>
Auf diese Weise erhalten Sie das Beste aus beiden Welten. Es erlaubt sogar die Wiederholung von 'IDS'
Obwohl es hier andere richtige Antworten gibt (z. B. die Verwendung von Klassen), ist es aus akademischer Sicht natürlich möglich, mehrere Divs mit derselben ID zu haben, und es ist möglich, sie mit jQuery auszuwählen.
Wenn Sie verwenden
jQuery("#elemid")
Es wird nur das erste Element mit der angegebenen ID ausgewählt.
Wenn Sie jedoch nach Attribut auswählen (z. B. ID in Ihrem Fall), werden alle übereinstimmenden Elemente wie folgt zurückgegeben:
jQuery("[id=elemid]")
Dies funktioniert natürlich für die Auswahl eines beliebigen Attributs, und Sie können Ihre Auswahl weiter verfeinern, indem Sie das betreffende Tag angeben (z. B. div in Ihrem Fall).
jQuery("div[id=elemid]")
Ihr Dokument sollte nicht zwei Divs mit derselben ID enthalten. Dies ist ungültiges HTML , weshalb die zugrunde liegende DOM-API dies nicht unterstützt.
Aus dem HTML-Standard :
id = name [CS] Dieses Attribut weist einem Element einen Namen zu. Dieser Name muss in einem Dokument eindeutig sein.
Sie können jedem Div entweder unterschiedliche IDs zuweisen und beide mit auswählen $('#id1, #id2)
. Oder weisen Sie beiden Elementen ( .cls
zum Beispiel) dieselbe Klasse zu und $('.cls')
wählen Sie beide aus.
id
, nicht name
.
$("div[id^=" + controlid + "]")
gibt alle Steuerelemente mit demselben Namen zurück, Sie müssen jedoch sicherstellen, dass der Text in keinem der Steuerelemente vorhanden ist
Können Sie jedem einzelnen Timer eine eindeutige CSS-Klasse zuweisen? Auf diese Weise können Sie den Selektor für die CSS-Klasse verwenden, der mit mehreren div
Elementen problemlos funktioniert .