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;
});
jquery
css-selectors
Kennzeichen
quelle
quelle
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'
quelle
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]")
quelle
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 :
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.quelle
id
, nichtname
.Versuchen Sie dies, um div anhand der ersten ID auszuwählen
$('div[id^="c-"]')
quelle
$("div[id^=" + controlid + "]")
gibt alle Steuerelemente mit demselben Namen zurück, Sie müssen jedoch sicherstellen, dass der Text in keinem der Steuerelemente vorhanden istquelle
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 .quelle
Sie können auch versuchen, die beiden Divs in zwei Divs mit eindeutigen IDs zu verpacken. Wählen Sie dann die Div durch
$("#div1","#wraper1")
und$("#div1","#wraper2")
Bitte schön:
<div id="wraper1"> <div id="div1"> </div> <div id="wraper2"> <div id="div1"> </div>
quelle