Mootools .get ('text') не работает должным образом - PullRequest
3 голосов
/ 19 октября 2010

Обновление : Это работает в Firefox, но не работает в Chrome 6. Все еще изучаю.Я работаю над проблемой mootools, и метод .get ('text'), похоже, не работает должным образом для responseXML.

Вот ответXML:

<?xml version="1.0" encoding="UTF-8"?> 
<users> 
        <user> 
            <username>etomai</username> 
            <first_name>Joe</first_name> 
            <last_name>Smith</last_name> 
        </user> 
        <user> 
            <username>hehhh</username> 
            <first_name>hee</first_name> 
            <last_name>lkii</last_name> 
        </user> 
</users>

Воткод:

function update_list() {
    var req = new Request({
        url: 'users.php',
        method: 'get',
        data: {
            'term': $('search').value
        },
        onComplete: function(responseText, responseXML){
            $('list').empty();
            responseXML.documentElement.getElements('user').each(function(user){
                //this seems like it should work according to all mootools docs, but it doesn't.  user.getElement('username').get('tag') works, but neither 'html' or 'text' work...retuturning undefineds.
                console.log(user.getElement('username').get('text'));
                var copy = $('template').clone();
                $('list').grab(copy);
                $(copy).removeClass('hidden');
                $(copy).getChildren()[0].set("text", "username goes here")
                $(copy).getChildren()[1].set("text", "name goes here")
            })

        }
    }).send();

}

Как указано в комментарии, в строке console.log(... я должен (в соответствии с документацией) иметь возможность получить текст, содержащийся в теге username, с помощью .get('text').Вместо этого возвращается неопределенное значение.

Проверка значения user.getElement('username') возвращает ожидаемое

<username>etomai</username>

Рабочий код, расположенный здесь

Попробуйте ввестибуква «е» в поле поиска.

Я застрял на этом этапе.Кто-нибудь может указать мне правильное направление?

1 Ответ

2 голосов
/ 19 октября 2010

Похоже, ошибка для меня.В Firefox "text" разрешает использовать свойство textContent, стандартное для Element.

В Chrome, однако оно разрешается в innerText, поскольку поддерживает его для HTML DOM, но недля XML DOM.Но мы пытаемся использовать его в XML DOM здесь.

Один из обходных путей, который должен работать в обоих браузерах:

user.getElement('username').textContent
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...