Foros del Web » Programando para Internet » Javascript »

Recuperar atributos de una etiqueta...

Estas en el tema de Recuperar atributos de una etiqueta... en el foro de Javascript en Foros del Web. Bueno, veamos a ver como me hago entender... Resulta que paso a una función el id, esta función verifica si este id existe y de ...
  #1 (permalink)  
Antiguo 06/02/2009, 18:16
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 2 meses
Puntos: 15
Pregunta Recuperar atributos de una etiqueta...

Bueno, veamos a ver como me hago entender...

Resulta que paso a una función el id, esta función verifica si este id existe y de ser correcto comienza un 'for' a recorrer y cargar todas las propiedades de esta etiqueta... el problema es que en la mayoría de navegadores carga únicamente las propiedades existentes... Y a que no adivinan quien presenta problemas? Si señor, para variar Iexplorer... ya que este navegador me carga todas las propiedades existentes, osea hasta algunas que no he definido en esta etiqueta...existe alguna forma de evitarlo...

Código:
var exx=document.getElementById(micompid)
for (var q=0;q<KAtt;q++){
		Union = exx.attributes.item(q);
		if(Union.value!='null'&&Union.value!=''&&Union.value!=0){
		var AttrComp = AttrComp +Union.nodeName+'=\"'+Union.value+'\"'+' ';
		}
}
Como ven, yo estoy utilizando esto, pero para mi, eso no pinta bien?
if(Union.value!='null'&&Union.value!=''&&Union.val ue!=0)

Por cierto, conocen algunas técnicas para mejorar la velocidad en ajax?
  #2 (permalink)  
Antiguo 07/02/2009, 01:23
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: Recuperar atributos de una etiqueta...

Hola:

Veo que llevas un tiempo dándole vueltas al DOM, por lo que te voy a recomendar echarle un vistazo a mi Destripador...

La respuesta a tu pregunta se dá con los array asociativos o de Objetos... sabiendo que los atributos se obtienen con el objeto attributes, un bucle sencillo sería:

x = document.getElementById("ejemplo");
attrs = "";
for (i in x.attributes) attrs += i + ": " + x.attributes[i] + "\n";
alert(attrs);

Bueno, la alerta no es lo más recomendable... ya sabrás que usar para mostrar los resultados.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 07/02/2009, 09:47
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 2 meses
Puntos: 15
De acuerdo Respuesta: Recuperar atributos de una etiqueta...

Vale, muchas gracias por reponder y sugerir esta herramienta...le dare una pasada a ver que tal, pero estoy seguro que si tu la aconsejas debe ser muy útil. Actualmente utilizo firebug+Yslow+Web developer y son un excelente equipo...
En cuanto a la alerta es la forma mas rapida de visualizar errores y descartar si todo funciona bien mientras se esta desarrollando... Naturalmente hay que descartarla al final...

Tambien pido tu aprobación para analizar el codigo en tu destripador, sin duda encontrare cosas utiles a mi desarrollo.

Un saludo, y muchas gracias nuevamente... Te aporto mi buen karma.

Última edición por SPAWN3000; 07/02/2009 a las 09:54
  #4 (permalink)  
Antiguo 08/02/2009, 02:21
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: Recuperar atributos de una etiqueta...

Hola:

Se agradece el karma, aunque las respuestas no tienen esa intención
Sobre analizar el código, lo tienes muy fácil, ya que en la última pestaña hasta puedes editarlo y probarlo... aunque aconsejo hacerlo con prudencia, entre otras cosas, si quisieras automatizarlo destripando toda la página desde el objeto window, te encontrarías con varios bucles infinitos... con uno solo se te bloquearía la página, pero desde luego que puedes analizarlo y probarlo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 09/02/2009, 14:11
Avatar de SPAWN3000  
Fecha de Ingreso: marzo-2008
Ubicación: Bogota
Mensajes: 858
Antigüedad: 16 años, 2 meses
Puntos: 15
De acuerdo Respuesta: Recuperar atributos de una etiqueta...

Bueno, estuve probando el código que me enviaste,

exx = document.getElementById("Combo1"); attrs = "";
for (i in exx.attributes) attrs += i + ": " + exx.attributes[i] + "\n";
alert(attrs);

y me imprime esto...que la verdad me resulta muy curioso... ya que se parecen mucho a los métodos get y set de los bean en java. Podrías aclararme de donde se originan.

0: [object Attr]
1: [object Attr]
2: [object Attr]
3: [object Attr]
length: 4
getNamedItem: function getNamedItem() {
[native code]
}
setNamedItem: function setNamedItem() {
[native code]
}
removeNamedItem: function removeNamedItem() {
[native code]
}
item: function item() {
[native code]
}
getNamedItemNS: function getNamedItemNS() {
[native code]
}
setNamedItemNS: function setNamedItemNS() {
[native code]
}
removeNamedItemNS: function removeNamedItemNS() {
[native code]
}
  #6 (permalink)  
Antiguo 09/02/2009, 16:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Respuesta: Recuperar atributos de una etiqueta...

Hola:

La analogía con java es más que lógica, pero no sabría decirte exactamente como se originan los datos, pero los bucles del tipo asociativo o de objetos, recorren todos los atributos... y en distintos navegadores se obtienen distintas respuestas. Tal vez un recorrido mejor y más amplio se obtenga obviando attributes:

exx = document.getElementById("Combo1"); attrs = "";
for (i in exx) attrs += i + ": " + exx[i] + "<br >";
...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:37.