Инкрементный идентификационный номер (JS) - PullRequest
0 голосов
/ 23 февраля 2010

Я использую плагин jQuery Selectbox, который имеет эту функцию:

function setupContainer(options) {
    var container = document.createElement("div");
    $container = $(container);
    $container.attr('id', elm_id+'_container');
    $container.addClass(options.containerClass);

    return $container;
}

... он применяет одно и то же имя идентификатора ко всем раскрывающимся спискам, как мне изменить приведенный выше код, чтобы каждый идентификатор был пронумерован (начиная с 1) и уникален?

Посмотреть полный скрипт здесь .

Спасибо!

Ответы [ 2 ]

0 голосов
/ 23 февраля 2010

Вы можете хранить elm_id как свойство вашей функции, например:

function setupContainer(options) {
    var container = document.createElement("div");
    $container = $(container);

    var elm_id = setupContainer.uid++;

    $container.attr('id', elm_id+'_container');
    $container.addClass(options.containerClass);

    return $container;
}
setupContainer.uid = 1;

Таким образом, вы не полагаетесь на другую глобальную переменную.

0 голосов
/ 23 февраля 2010

Я предполагаю, что elm_id - это число, и это глобальная переменная. Если код будет выглядеть так:

function setupContainer(options) {
var container = document.createElement("div");
$container = $(container);
elm_id++;
$container.attr('id', elm_id+'_container');
$container.addClass(options.containerClass);

return $container;

}

...