2008-11-30 13 views
10

Was ist zu tun, wenn nach einer Untersuchung ein verlässlich gültiges Objekt für jedes untersuchte Attribut "undefiniert" zurückgibt? Ich benutze jQuery, $('selector').mouseover(function() { }); Everything gibt 'undefined' für $(this) im Funktionsumfang zurück. Der Selektor ist ein "Bereich" für ein Map-Tag und ich suche nach seinen übergeordneten Attributen.Wie JavaScript Introspektion zu tun?

Antwort

23

Ihre Frage ist ein bisschen vage, also können Sie vielleicht mehr Details zur Verfügung stellen?

Um herauszufinden, über ein Objekt und die Werte seiner Eigenschaften, gibt es viele Möglichkeiten, es zu tun, einschließlich Firebug oder einige andere Debug-Tools, etc. Hier ist eine schnelle und dreckige Funktion, die Ihnen den Einstieg erleichtern kann bis Sie weitere Informationen zur Verfügung stellen kann:

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

, die eine Liste der Eigenschaften des Objekts angezeigt wird, dass Sie es passieren, dass nicht undefined sind.

Hoffnung, dass ...

+0

In Firefox können Sie einfach nennen toSource() auf einem Objekt: var o = {"moo": "Kuh", "Schuss", "Hund"}; o.toSource(); // "({moo:" cow ", woof:" Hund "})" –

+2

Oder verwende das jetzt eingebaute JSON-Objekt und rufe stringify() darauf auf - die Ergebnisse sind ein bisschen anders, aber nicht viel. https://developer.mozilla.org/En/Using_native_JSON –

+1

tolle schnelle Introspektion Werkzeug !!! – jsh

0

Ist selector der Name des Elements hilft? Wenn ja, dann sollten Sie es als Referenz:

$('area#selector') 

oder

$('#selector') 

sonst wird er versuchen, für die (nicht vorhandenen) „Selektor“ HTML-Tag zu suchen und, natürlich, nicht finden.

+0

Ja, die richtige Schreibweise wurde verwendet: $ ('# myarea'), wobei die ID = 'myarea' für das Bereichs-Tag ist. Vielen Dank. – Florin