JQuery для вопроса цикла - PullRequest
       6

JQuery для вопроса цикла

0 голосов
/ 27 декабря 2011

У меня есть функция ниже, с помощью которой я пытаюсь что-то добавить. он внутренне вызывает другую функцию, которая выполняет функцию добавления.

function something()
    for(var i=0; i <= obj.result.length; i++) {

EDIT

    obj = objEval.result[i].uniquename;
    prop = objEval.result[i].prop;
    count = objEval.result[i].count;


        // count is 21 in my case. below function is called..
        if (count > 0){
            callAdd(obj,prop);
        }

    }
}

фактическая функция, которая добавляет

function callAdd(obj,prop){
    // obj exists in DOM.. checked via $(obj).length -- greater than 0
    $(obj).append(prop);
}

проблема здесь в том, что даже если функция добавления находится в цикле for ... только первый элемент отправляется в функцию callAdd .. как показано ниже:

У меня есть 4 объекта, реквизит:

obj=45183371 and prop=6
obj=560488951 and prop=12
obj=616516330 and prop=23
obj=915329019 and prop=5

но только первая пара (obj = 45183371 и prop = 6) отправляется в функцию callAdd в качестве параметров.

Пожалуйста, помогите ..

Ответы [ 4 ]

0 голосов
/ 27 декабря 2011

Вы изменяете переменную, от которой зависите (obj), чтобы ограничить переменную управления циклом (i). При повторном назначении obj внутри тела цикла:

obj = objEval.result[i].uniquename;

Состояние цикла:

i <= obj.result.length

Будет ложным на следующей итерации. Внутри тела цикла создайте новую переменную вместо назначения чего-то нового для obj.

В качестве альтернативы (или дополнительно), кэшируйте количество итераций, которое вы хотите вместо переменной:

var len = obj.result.length;
for (var i = 0; i <= len; i++) {
    // Do whatever you want to obj.
}
0 голосов
/ 27 декабря 2011

что-то (), как правило, нужно добавить параметр, в противном случае, как это будет функционировать? где бы он построил свой цикл? Глобальный вар? Я не вижу одного

0 голосов
/ 27 декабря 2011

Попробуй это. Получить все объекты в массиве.

var objAry=new Array();

Получить все реквизиты в массиве.

var propsAry=new Array();

Теперь

    function something()
    {
        var propsAry=new Array();
        var objAry=new Array();

        objAry= //Your objs
        propsAry=//Your props

        for(var i=0; i <= objAry. length; i++)
        {

            if (count > 0)
            {
                callAdd(objAry[i], propsAry[i]);
            }
        }
  }
0 голосов
/ 27 декабря 2011

Вы не определили count, поэтому используйте i:

if (i > 0){
    callAdd(obj,prop);
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...