Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Доступ к свойствам объекта (https://javascript.ru/forum/misc/28761-dostup-k-svojjstvam-obekta.html)

shifteee 01.06.2012 16:34

Доступ к свойствам объекта
 
Добрый день!

Не знаю туда ли я пишу, но...

Имеется код:

$(document).ready(function(){
    $(".active_letter").bind('click', {data:countries} ,function(e){
        var el = $(e.target).parents($("ul"));
        var letter = $(e.target).text();
        var links = countries[letter];
            console.log(letter, typeof(letter), links); //А(кириллица, UTF-8), string, undefined
        $(el).append("<li></li>");
        
    });
});


Подскажите почему при var links = countries["А"]; присваевается нужное значение, а при var links = countries[letter]; выводится undefined.

П.С. Если очень важно, то объект countries представляет из себя:

var countries = { А : [valA1, valA2, ...], Б: [valБ1, valБ2, ...], ...}

B@rmaley.e><e 01.06.2012 16:40

Значит, как подсказывает К.О., letter != "А". Там, например, пробелы могли затесаться.

shifteee 01.06.2012 16:41

console.log(letter, typeof(letter), links); //А(кириллица, UTF-8), string, undefined - эта строчка говорит, что на этот раз КО ошибается

B@rmaley.e><e 01.06.2012 16:42

shifteee, нет, не говорит.
Вот если бы alert( letter == "А" ) выдавало true, то такая строчка говорила бы.

И вообще, дайте ссылку на страницу. Мало ли что там может твориться.

shifteee 01.06.2012 16:50

Действительно false. А есть ли тут функция, аналогичная trim()?

tadjik1 01.06.2012 16:53

ну трим и есть.
а есть еще e.target.innerText

B@rmaley.e><e 01.06.2012 16:58

Свойство innerText не очень кроссбраузерное. ЕМНИП, в Firefox оно называется textContent.

shifteee 01.06.2012 17:27

У меня оно действительно А, но перед А куча каких-то пробелов


Часовой пояс GMT +3, время: 07:40.