Come ottenere tutti gli elementi in base al nome della classe su puro javascript? Analog $ ('. Class') in Jquery?Come ottenere tutti gli elementi in base al nome della classe?
risposta
document.getElementsByClassName(klass)
essere consapevoli del fatto che alcuni motori (in particolare i browser più vecchi) non ce l'hanno. Potresti prendere in considerazione l'utilizzo di uno shim, se è il caso. Sarà lento e itererà sull'intero documento, ma funzionerà.
In some browsers c'è una funzione document.getElementsByClassName(class)
. Altrimenti, l'unica opzione che hai è quella di iterare su tutti gli elementi nel documento controllandone ognuno rispetto alla tua condizione di avere il nome di classe richiesto.
document.getElementsByClassName('your class');
o si può costruire il nome di classe come questo, se non funziona provate questo
if (!document.getElementsByClassName) {
document.getElementsByClassName=function(cn) {
var allT=document.getElementsByTagName('*'), allCN=[], i=0, a;
while(a=allT[i++]) {
a.className==cn ? allCN[allCN.length]=a : null;
}
return allCN
}
}
Questo dovrebbe funzionare:
function(className)
{
var matchingItems = [];
var allElements = document.getElementsByTagName("*");
for(var i=0; i < allElements.length; i++)
{
if(allElements [i].className == className)
{
matchingItems.push(allElements[i]);
}
}
return matchingItems;
}
Sì, ma non mi consiglia di utilizzare lo in questo modo, ho provato a fare qualcosa del genere e poi ho avuto un enorme problema di prestazioni in IE7, dato che funziona molto lentamente –
Sono d'accordo. Ci sono sicuramente soluzioni più eleganti. Vedo che @Kunal di seguito utilizza espressioni regolari che sono pure più pulite. Stavo solo fornendo un'opzione rapida in modo che il richiedente potesse farsi un'idea. – spinon
Questo non funzionerà se all'elemento sono applicate due classi –
function getElementsByClassName(oElm, strTagName, strClassName){
var arrElements = (strTagName == "*" && oElm.all)? oElm.all :
oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
var oElement;
for(var i=0; i<arrElements.length; i++){
oElement = arrElements[i];
if(oRegExp.test(oElement.className)){
arrReturnElements.push(oElement);
}
}
return (arrReturnElements)
}
Questo è simile a uno snippet di codice in un libro Punto del sito. Sei curioso di sapere se questa è la fonte, o è solo una strana coincidenza? – pqsk
diverse tecniche descritte e la velocità testato qui: http://ejohn.org/blog/getelementsbyclassname-speed-comparison/
Un semplice e un modo semplice
var cusid_ele = document.getElementsByClassName('custid');
for (var i = 0; i < cusid_ele.length; ++i) {
var item = cusid_ele[i];
item.innerHTML = 'this is value';
}
Quando si va avanti, il ciclo salterà ogni seconda entrata se gli elementi vengono eliminati nel ciclo. Quindi, meglio andare indietro. (Ho modificato la risposta di conseguenza, in attesa di revisione tra pari). –
- 1. JQuery ottiene tutti gli elementi in base al nome della classe
- 2. Come ottenere l'elemento in base al nome della classe
- 3. Ottieni tutti gli elementi per nome della classe utilizzando DOMDocument
- 4. selezionare tutti gli elementi HTML in base al valore rel
- 5. Come ottenere tutti i selettori in base al nome della classe che sono stati aggiunti dinamicamente in JavaScript vanilla?
- 6. Come ottenere il tipo di classe in base al nome della classe?
- 7. come ottenere il nome della classe derivata dalla classe base
- 8. Nascondere tutti gli elementi con lo stesso nome classe?
- 9. Come ottenere il riferimento al tipo di classe in base al nome in Delphi XE?
- 10. jquery: ottiene gli elementi in base al nome della classe e aggiunge css a ciascuno di essi
- 11. Get elemento in base al nome di tag e il nome della classe
- 12. Ottenere tutti gli elementi iframe
- 13. elisir - come ottenere tutti gli elementi eccetto l'ultimo della lista?
- 14. Javascript associare l'evento al nome della classe
- 15. Come ottenere tutti gli elementi di lavoro in una iterazione?
- 16. jQuery funzione di fuoco su tutti gli elementi della classe
- 17. Dove posso ottenere un elenco di tutti gli elementi iOS?
- 18. Javascript ottenere testo HTML interno per campata in base al nome della classe
- 19. Javascript: Nascondi gli elementi per nome della classe
- 20. XPath per selezionare tutti gli elementi con un nome specificato
- 21. Come ottenere tutti gli elementi da IMongoCollection in C#?
- 22. Come ottenere tutti gli elementi con NSPredicate CONTAINS IN array
- 23. Come ottenere tutti gli elementi di una lista per istanza?
- 24. Come cambiare classe per tutti gli elementi recuperati da document.getElementsByClassName
- 25. Come unire tutti gli elementi della lista in R?
- 26. Classe di base astratta per tutti gli oggetti entità dominio
- 27. Visualizza gli elementi sulla dashboard in base al ruolo utente
- 28. Come ottenere tutti gli elementi da un ArrayAdapter
- 29. Come ottenere gli elementi della lista in base all'indice in elisir
- 30. Come ottenere il simbolo di valuta in base al nome della valuta?
http://stackoverflow.com/questions/1933602/how-to-getelementbyclass-instead-of-getelementbyid-with-javascript – silly