для цикла внутри функции jquery - PullRequest
4 голосов
/ 19 октября 2010

Я пытаюсь повторить что-то внутри функции jquery.Я пробовал цикл for, но, похоже, синтаксис ему не нравится.Например, у меня есть переменная

var number = 2;

Теперь у меня есть

$('tr').html('<td id="'+number+'"></td>');

, что я хочу сделать, это цикл от 0 до числа (0,1,2), так что в концеу меня в конечном итоге 3.Спасибо

Ответы [ 2 ]

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

Существует , вероятно, лучший способ, но это должно работать.

var loops = [1,2,3];

$.each(loops, function(index, val) {
  $('tr').html('<td id="myCell' + index + '"></td>');
});

Это также должно работать (обычный JS):

var i;
for(i=0; i<3; i++) {
  $('tr').html('<td id="myCell' + i + '"></td>');
}

Обратите внимание, что я поставил префикс id со словом 'myCell', чтобы обеспечить соответствие XHTML. (спасибо @Peter Ajtai за указание на это).

EDIT

Я только что заметил другую проблему - вы используете функцию .html для добавления ячеек. Но .html заменяет весь html соответствующего элемента. Таким образом, у вас останется только последняя ячейка. :)

Возможно, вы ищете функцию .append :

$('tr').append('<td id="myCell' + i + '"></td>');

EDIT 2 - перемещать двойную кавычку до myCell, а не после.

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

Вот вариант с использованием анонимной функции.

$('TR').html(
    function(){
        var content=''; 
        for (var i=0; i<=2; i++  ){
            content=content+'<td id="id_'+i+'"></td>';
        }
        return content;
    }
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...