Quiero poner todos los atributos en un elemento Html en una matriz: como si tuviera un objeto jQuery, que html se ve así:
<span name="test" message="test2"></span>
ahora una forma es usar el analizador xml descrito aquí , pero luego necesito saber cómo obtener el código html de mi objeto.
la otra forma es hacerlo con jquery, pero ¿cómo? El número de atributos y los nombres son genéricos.
Gracias
Por cierto: no puedo acceder al elemento con document.getelementbyid o algo similar.
getElementById
-var el = document.getElementById($(myObj).attr("id"));
get
método ... por ejemplo:var obj = $('#example').get(0);
Puede usar este complemento simple como $ ('# some_id'). GetAttributes ();
fuente
Sencillo:
fuente
Attr.nodeValue
está en desuso a favor devalue
, dice Google Chrome. Entonces esto podría serthis.name + ':' + this.value
. La interfaz AttrDebido a que en IE7 elem.attributes enumera todos los atributos posibles, no solo los actuales, tenemos que probar el valor del atributo. Este complemento funciona en todos los principales navegadores:
Uso:
fuente
Setter y Getter!
Utilizar:
fuente
jQuery.attr
.jQuery.attr
en el setter, pero probablemente sería beneficioso usarlo también en el getter.Use
.slice
para convertir laattributes
propiedad a ArrayLa
attributes
propiedad de los nodos DOM es aNamedNodeMap
, que es un objeto tipo Array.Un objeto tipo Array es un objeto que tiene una
length
propiedad y cuyos nombres de propiedad se enumeran, pero de lo contrario tiene sus propios métodos y no hereda deArray.prototype
El
slice
método se puede utilizar para convertir objetos de tipo Array en un nuevo Array .fuente
attrs
, puede acceder al nombre del atributo con laname
propiedad del elemento.Este enfoque funciona bien si necesita obtener todos los atributos con nombre y valor en los objetos devueltos en una matriz.
Salida de ejemplo:
Si solo desea una matriz de nombres de atributos para ese elemento, puede simplemente asignar los resultados:
fuente
La respuesta de Roland Bouman es la mejor y más simple manera de Vanilla. Noté algunos intentos de enchufes jQ, pero simplemente no me parecieron lo suficientemente "llenos", así que hice el mío. El único inconveniente hasta ahora ha sido la incapacidad de acceder a los atributos agregados dinámicamente sin llamar directamente
elm.attr('dynamicAttr')
. Sin embargo, esto devolverá todos los atributos naturales de un objeto de elemento jQuery.El complemento utiliza llamadas de estilo jQuery simples:
También puede agregar un segundo parámetro de cadena para obtener solo un atributo específico. Esto no es realmente necesario para la selección de un elemento, ya que jQuery ya proporciona
$(elm).attr('name')
, sin embargo, mi versión de un complemento permite múltiples retornos. Entonces, por ejemplo, una llamada comoResultará en una matriz de
[]
retorno de objetos{}
. Cada objeto se verá así:Enchufar
Cumplido
jsFiddle
Mostrar fragmento de código
fuente
Maneras mucho más concisas de hacerlo:
A la antigua usanza (IE9 +):
Forma ES6 (Edge 12+):
document.querySelector()
devuelve el primer elemento dentro del documento que coincide con el selector especificado.Element.attributes
devuelve un objeto NamedNodeMap que contiene los atributos asignados del elemento HTML correspondiente.[].map()
crea una nueva matriz con los resultados de llamar a una función proporcionada en cada elemento de la matriz que realiza la llamada.Manifestación:
Mostrar fragmento de código
fuente
¿Esto ayuda?
Esta propiedad devuelve todos los atributos de un elemento en una matriz para usted. Aquí hay un ejemplo.
Para obtener los atributos de muchos elementos y organizarlos, sugiero hacer una matriz de todos los elementos que desea recorrer y luego crear una matriz secundaria para todos los atributos de cada elemento en bucle.
Este es un ejemplo de un script que recorrerá los elementos recopilados e imprimirá dos atributos. Este script supone que siempre habrá dos atributos, pero puede solucionarlo fácilmente con una asignación adicional.
fuente
¡A cada respuesta aquí le falta la solución más simple usando el método del elemento getAttributeNames !
Recupera los nombres de todos los atributos actuales del elemento como una matriz regular, que luego puede reducir a un buen objeto de claves / valores.
fuente
Imagina que tienes un elemento HTML como el siguiente:
Una forma de obtener todos los atributos es convertirlos en una matriz:
Y a continuación se muestra la cadena que obtendrá (del ejemplo), que incluye todos los atributos:
fuente
Intenta algo como esto
y luego obtener todos los atributos
para una variedad de atributos usar
fuente
tener
<div id="mydiv" a='1' b='2'>...</div>
puede usarfuente
Muy simple. Solo necesita recorrer el elemento de atributos e insertar sus valores de nodo en una matriz:
Si desea el nombre del atributo, puede reemplazar 'nodeValue' por 'nodeName'.
fuente
Atributos para la conversión de objetos
* Requiere: lodash
Esto convertirá todos los atributos html en un objeto anidado
HTML de ejemplo:
<div custom-nested-path1="value1" custom-nested-path2="value2"></div>
Resultado:
{custom:{nested:{path1:"value1",path2:"value2"}}}
Si parseJson se establece en verdaderos valores json se convertirán en objetos
fuente
En javascript:
Para acceder a los nombres y valores de los atributos:
fuente