Что делает dojo.query () возврат?

Обратите внимание, что также можно использовать boost.ublas для матричного создания и управления и также boost.graph, чтобы представить и управлять графиками различными способами, а также алгоритмами использования на них, и т.д.

Редактирование : Так или иначе выполнение версии проверки принадлежности к диапазону вектора в Ваших целях не является твердой вещью:

template 
class BoundsMatrix
{
        std::vector inner_;
        unsigned int dimx_, dimy_;

public:
        BoundsMatrix (unsigned int dimx, unsigned int dimy)
                : dimx_ (dimx), dimy_ (dimy)
        {
                inner_.resize (dimx_*dimy_);
        }

        T& operator()(unsigned int x, unsigned int y)
        {
                if (x >= dimx_ || y>= dimy_)
                        throw std::out_of_range("matrix indices out of range"); // ouch
                return inner_[dimx_*y + x];
        }
};

Примечание, что необходимо было бы также добавить версию константы операторов, и/или итераторы и странное использование исключений, но Вы получаете идею.

6
задан peirix 9 October 2009 в 09:02
поделиться

4 ответа

Метод запроса возвращает объект NodeList.

В ссылке на NodeList вы можете найти список функций, которые можно применить к списку элементов. Для этого списка нет функции innerHTML, но функция html должна работать.

В HTML нет элемента «output», возможно, вы пытаетесь нацелить элементы с именем класса «output»?

dojo.query(".output").html(data)

Или элемент с id "output"?

dojo.query("#output").html(data)
3
ответ дан 16 December 2019 в 21:43
поделиться

Как было сказано выше, метод запроса возвращает объект NodeList, поэтому вы можете перебирать его результат в виде массива или использовать методы dojo, которые работают с NodeList (например, attr):

dojo.query("#divOutput").attr("innerHTML", data);

Но как только вы пытаетесь запросить узлы по идентификатору, было бы лучше использовать метод dojo.byId (), который возвращает domNode:

dojo.byId("divOutput").innerHTML = data;

Или в более стиле dojo:

dojo.attr(dojo.byId("divOutput"), "innerHTML", data)
1
ответ дан 16 December 2019 в 21:43
поделиться

Также существует оболочка dojox.jq (в разработке, входит в 1.4), которая эмулирует API возвращаемого объекта JQuery

0
ответ дан 16 December 2019 в 21:43
поделиться

Если вы хотите заменить все содержимое тегов вывода одним и тем же, тогда этот код всегда должен работать:

// replace the contents of ALL <output> tags
dojo.query('output').forEach(function(node) { node.innerHTML = data; });

Dojo также предоставляет небольшой ярлык для этих виды вещей. Вы можете указать строку для функции forEach в NodeList следующим образом:

// replace the contents of ALL <output> tags (as long as data is global)
dojo.query('output').forEach("item.innerHTML = data;");

Слово элемент в строке является особенным. (Отладка затруднительна, так что, возможно, она того не стоит.)

3
ответ дан 16 December 2019 в 21:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: