2010-03-15 9 views

risposta

1

Sono andato con il suggerimento di Ariel Popovsky di usare il filtro, anche se se ne avessi avuto bisogno in molti posti, avrei usato il suggerimento di petersendidit di creare un selezionatore di clienti.

La differenza (importante) è che la proprietà .specified deve essere controllata. IE restituisce sempre più di 80 attributi.

Nota: anche questo non è al 100%. Ci sono alcuni attributi, come INPUT .value, che sono casi speciali, ma dal momento che sto usando un DIV, posso ignorarli.

$("div").filter(function() 
{ 
    for (var i = 0; i < this.attributes.length; i++) 
    { 
     var attr = this.attributes[i]; 
     if (attr.specified) 
     { 
      return true; 
     } 
    } 
    return false; 
}) 
6

io non la penso così, ma questo dovrebbe fare il trucco

$('*').filter(function(){return this.attributes.length;}) 

e il contrario:

$('*').filter(function(){return !this.attributes.length;}) 
0

Forse if($('.class').attr('*:attr').length > 0)

+0

Il metodo attr non può effettuare selezioni come quella http://api.jquery.com/attr/ – PetersenDidIt

5

Si potrebbe crea il tuo selettore senza attributi:

Problemi correlati