2011-12-06 20 views
6
<body> 
    <span someAttribute="xyz">.....</span> 
    ... 
    <div> 
    ... 
    <span someAttribute="abc">.....</span> 
    ... 
    <div someAttribute="pqr">.....</div> 
    ... 
    </div> 
</body> 

Ecco una pagina HTML di esempio .. Ho bisogno di selezionare gli elementi HTML da parte dei suoi attributi posso ottenere i valori degli attributi da getAttribute() ma ho bisogno di selezionare tutti gli elementi prima.Javascript per ottenere elementi dal suo attributo

Come in javascript per ottenere elementi che hanno il nome attributo come "someAttribute". Una volta ottenuti gli elementi, posso ottenere i valori degli attributi e utilizzare la mia funzione.

Nota: voglio farlo senza usare jquery.

risposta

6

memorizzare ogni elemento in una matrice il ciclo attraverso ogni elemento e se l'elemento contiene l'attributo someAttribute do somgthing.

var arr_elms = []; 
arr_elms = document.body.getElementsByTagName("*"); 
var elms_len = arr_elms.length; 

for (var i = 0; i < elms_len; i++) { 
    if(arr_elms[i].getAttribute("someAttribute") != null){ 
    alert("FOUND : " + arr_elms[i].getAttribute("someAttribute")); 
    } 
} 
+0

lavora tizio .. solo bisogno di qualche codifica aggiuntiva .. mal fatto .. grazie ... :) –

+0

grande, nessuna preoccupazione! – david

0

È possibile attraversare tutti gli elementi dell'albero DOM.

0

È possibile selezionare gli elementi in base al nome del tag utilizzando document.body.getElementsByTagName("div") per ottenere tutti gli elementi div all'interno del documento. Questa funzione restituisce una matrice di elementi, che è possibile analizzare e filtrare gli elementi che non corrispondono ai criteri.

0

è possibile utilizzare

var all = document.getElementsByTagName('*'); 

ma questo restituisce anche il html, head e body ...

e poi fare un ciclo su tutti gli elementi e cercare gli attributi.

+0

voglio arrivare elementi che hanno il nome dell'attributo come "someAttribute" .. come posso farlo? –

0

ho trovato un frammento chiamato getElementsByAttribute(doc, tagArray, attribute, attributeValue)

Si può dare una prova per un violino di lavoro: http://jsfiddle.net/Yx7EU/

Spero che questo può aiutare.

+0

hey 'getElementsByAttributedoc, tagArray, attribute, attributeValue)' effettivamente neet per ottenere il valore dell'attributo da quello .. può essere fatto con solo 'getElementsByAttributedoc, tagArray, attributo) ' –

6

Nei nuovi browser si può fare:

var el = document.querySelector('[someAttribute="someValue"]'); 
-2

var elem = document.querySelectorAll ('tagName [attributeName = " '+ valueInVariable +'"]')

+1

Si prega di astenersi dal pubblicare risposte che duplicano solo le risposte esistenti e non aggiungono nulla di nuovo. –

Problemi correlati