Por ejemplo tengo este código:

 <div class="class1" ng-keydown="ex()">
 </div>

¿Cómo obtengo todos estos atributos que están en la etiqueta div? Quiero obtener la clase y ng-keydown usando jquery, por ejemplo, y cómo puedo agregar algo a esto usando jquery, por ejemplo, si quisiera agregar ng-mouseclick a esto.

-2
Dāvis R. 27 feb. 2018 a las 12:23

3 respuestas

La mejor respuesta

¿Cómo obtengo todos estos atributos que están en la etiqueta div?

Utilice attributes y reduce

var elem = document.querySelector('div').attributes;
var output  = [...elem].reduce( ( a, c ) => ( a[ c.nodeName ] = c.value, a ) , {});

Demostración

var elem = document.querySelector('div').attributes;
var output  = [...elem].reduce( ( a, c ) => ( a[ c.nodeName ] = c.value, a ) , {});
console.log( output );
<div class="class1" ng-keydown="ex()"></div>
0
gurvinder372 27 feb. 2018 a las 09:33

Puedes obtener todos los atributos por $("div")[0].attributes; de la div

//Get All Attributed of div
let attr = $("div")[0].attributes;

//Loop thru all attributes
$.each(attr, function(e) {
  if (this.specified) {
    console.log(this.name + ": " + this.value);
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="class1" ng-keydown="ex()"></div>

Si tiene múltiples divs, puede hacer each para recorrer los div s

$("div").each(function() {
  $.each(this.attributes, function(e) {
    if (this.specified) {
      console.log(this.name + ": " + this.value);
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="class1" ng-keydown="ex()"></div>
<div class="class2" ng-keydown="ex2()"></div>
<div class="class3" ng-keydown="ex3()"></div>
1
Eddie 27 feb. 2018 a las 09:33

Use esto: $('.class1').attr('ng-keydown');

0
zb22 27 feb. 2018 a las 09:24