2008-11-30 14 views
10

¿Qué hacer cuando, después de todo el sondaje, un objeto válido según los informes devuelve 'indefinido' para cualquier atributo investigado? Yo uso jQuery, $('selector').mouseover(function() { }); Todo devuelve 'indefinido' para $(this) dentro del alcance de la función. El selector es un "área" para una etiqueta de mapa y estoy buscando sus atributos principales.¿Cómo hacer la introspección del objeto JavaScript?

Respuesta

23

Su pregunta es un poco vaga, ¿entonces quizás pueda proporcionar más detalles?

En cuanto a conocer un objeto y los valores de sus propiedades, hay muchas maneras de hacerlo, incluido el uso de Firebug o algunas otras herramientas de depuración, etc. Aquí hay una función rápida y sucia que puede ayudarlo a comenzar hasta que pueda proporcionar más detalles:

function listProperties(obj) { 
    var propList = ""; 
    for(var propName in obj) { 
     if(typeof(obj[propName]) != "undefined") { 
     propList += (propName + ", "); 
     } 
    } 
    alert(propList); 
} 

que mostrará una lista de las propiedades del objeto que se le pasen, que no son undefined.

Espero que ayude ...

+0

En Firefox que puedes hacer simplemente llame toSource() sobre un objeto: var o = {"moo": "vaca", "guau", "perro"}; o.toSource(); // "({moo:" cow ", woof:" dog "})" –

+2

O, para el caso, use el objeto JSON ahora integrado y llame a stringify() también - los resultados son un poco diferente, pero no mucho. https://developer.mozilla.org/En/Using_native_JSON –

+1

gran herramienta de introspección rápida !!! – jsh

0

Es selector el nombre del elemento? Si es así, entonces debería hacer referencia a ella como:

$('area#selector') 

o

$('#selector') 

de lo contrario se tratará de buscar la (inexistente) etiqueta HTML "selector" y, obviamente, no lo encontrará.

+0

Sí, se usó la notación correcta: $ ('# myarea') donde id = 'myarea' para la etiqueta de área. Gracias. – Florin

Cuestiones relacionadas