Присвоение значений переменной WHILE цикла - PullRequest
1 голос
/ 10 марта 2011

У меня есть цикл WHILE, который перебирает таблицу, пока $ i меньше 10. Я хочу, чтобы этот цикл присваивал переменной INNERHTML каждой ячейки переменной.Так что позже я смогу использовать ее для обработки информации (цикл состоит в том, что вы можете выбрать, должны ли она занимать первые 3 или первые 10 ячеек).Но как мне назначить каждый innerHTML другой переменной?Я уверен, что должен быть легкий путь.Но Google не смог дать мне хороший ответ.

Заранее спасибо!

Милаан

Ответы [ 7 ]

2 голосов
/ 10 марта 2011

Массивы предназначены для этой цели.

(Предположительно, вы имеете в виду i, а не $i, поскольку переменные Javascript не обязательно должны начинаться с $ .. хотя нет причин, по которым вы не можете , многие люди выбирают это только для объектов jQuery. Я не буду использовать их ниже. Также мне пришлось угадывать компоновку вашего кода.)

var myHTMLs = [];
var i = 0;
while (i < 10) {
   var html = *<no idea how you are getting cell contents here.. what cell?!>*
   myHTMLs[myHTMLs.length] = html;
   i++;
}
1 голос
/ 10 марта 2011

Можете ли вы дать каждой ячейке уникальный идентификатор? Тогда вы можете просто сделать:

var cell_ids = ['id-cell-1', 'id-cell-2',...];
var cellcontents = [];

while (i < 10) {
  cellcontents.push($("#" + cell_ids[i]).html());
  i--;
}
0 голосов
/ 10 марта 2011

Вы можете попробовать использовать jQuery .map(), чтобы перебрать все ячейки и вернуть их свойства innerHTML в виде массива.

Пример: http://jsfiddle.net/xHH64/1/

var htmlArray = $('tbody td', '#tableID').map(function(i,v){
  return i < 10 ? v.innerHTML : null;
}).get();
0 голосов
/ 10 марта 2011

Может быть, это поможет:

Попробуйте сослаться на вашу таблицу с каким-то идентификатором, например.

<table id="myTable">

тогда попробуйте этот код

var tab = document.getElementById("myTable");
var y = 0, x = 0;

var myContainer = [];

for (y = 0; y < tab.rows.length; y++){
    for (x = 0; x < tab.rows[y].cells[x].length; x++){
        if (!myContainer[y])
            myContainer[y] = [];
        myContainer[y][x] = tab.rows[y].cells[x].innerHTML;
    }
}

Содержимое вашей таблицы теперь хранится в переменной myContainer. Для доступа к ячейке № 3 в строке № 8 вы просто используете:

alert(myContainer[8][3]);
0 голосов
/ 10 марта 2011

Это когда массивы полезны:

var i = 0;
var contents = [];
while (i < 10) {
   var div = document.getElementById("foo" + i);
   contents.push(div.innerHTML);
   i++;
}
alert(contents.length);
alert(contents[0]);
alert(contents[1]);
0 голосов
/ 10 марта 2011

Если я правильно читаю ваш вопрос, вы хотите сохранить innerHTML каждой ячейки, которую вы просматриваете, верно? В этом случае вы, вероятно, захотите использовать массив. Может быть так:

var i = 0;
var innerHTML_array = [];
while( i < 10 ) {
  innerHTML_array[i] = current_cell.innerHTML;
  i++;
}
0 голосов
/ 10 марта 2011

массив?

это просто код полу псевдо, но:

var i;
var innerString[];

while (i < 10) {
    innerString[i] = (innerHTML of elementID);
    i++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...