2008-11-30 16 views
10

Co zrobić, gdy po wszystkich sondowaniach, prawidłowo poprawny obiekt zwraca "niezdefiniowany" dla dowolnego sondowanego atrybutu? Używam jQuery, $('selector').mouseover(function() { }); Everything zwraca 'undefined' dla $(this) wewnątrz zakresu funkcji. Selektor to "obszar" dla znacznika mapy i szukam jego atrybutów nadrzędnych.Jak wykonać introspekcję obiektów JavaScript?

Odpowiedz

23

Twoje pytanie jest trochę niejasne, więc może możesz podać więcej szczegółów?

Jeśli chodzi o dowiadywanie się o obiekcie i wartości jego właściwości, można to zrobić na wiele sposobów, w tym za pomocą Firebuga lub innych narzędzi do debugowania itp. Oto szybka i brudna funkcja, która może pomóc w rozpoczęciu pracy. aż można podać więcej szczegółów:

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

to wyświetli listę właściwości obiektu, aby zdać go, że nie są undefined.

nadzieję, że pomoże ...

+0

W Firefoksie można to zrobić wystarczy wywołać toSource() na obiekcie: var o = {"moo": "krowa", "woof", "pies"}; o.toSource(); // "({moo:" krowa ", woof:" pies "})" –

+2

Albo, o to chodzi, użyj wbudowanego obiektu JSON i wywołaj na nim stringify() - wyniki są nieco różne, ale niewiele. https://developer.mozilla.org/En/Using_native_JSON –

+1

świetne szybkie narzędzie do introspekcji !!! – jsh

0

Czy selector nazwa elementu? Jeśli tak, to należy odwołać się go jako:

$('area#selector') 

lub

$('#selector') 

inaczej będzie próbować szukać (nieistniejącego) „selektor” tag HTML i, oczywiście, nie go znaleźć.

+0

Tak, użyto prawidłowej notacji: $ ("# myarea") gdzie id = "myarea" dla znacznika obszaru. Dzięki. – Florin

Powiązane problemy