2015-08-09 4 views
-2

Я хочу заполнить таблицу значениями с помощью Javascript/JQuery. У меня есть таблица с увеличивающимися идентификаторами (td-1 до td-42), и я хочу заполнить эту таблицу, используя JQuery/Javascript. В настоящее время я использую этот скрипт, но я знаю, что ошибка $('#td-'+i) не может работать, потому что используемый ID не так: $('#td-'12) недействительный идентификатор. У кого-то есть быстрое решение? Я застрял ...Итерация по ячейкам с увеличивающимися идентификаторами

for (var i = 1; i < 43; i++) { 
    if (i < firstDay || i >= (howMany + firstDay)) { 
     $('#td-'+i).value(""); 
    } else { 
     $('#td-'+i).value(i-firstDay); 
    } 
} 
+2

Почему вы не использовали это? '$ ('# td -' + i) .text (" ");' Элементы ввода имеют только функцию '.val()'. Это тоже не '.value()' –

+0

Хорошая точка. Вы правы, конечно. Но это не решение ... – DonMarco

+0

Что заставляет вас думать, что jQuery имеет функцию 'value'? В [документации API] нет (http://api.jquery.com). У этого есть 'val', и он имеет' text', и он имеет 'html', но не' value'. –

ответ

1

Используйте text(), и это сработало.

var firstDay = 3, howMany = 1; 
 

 
for (var i = 1; i < 7; i++) { 
 
    if (i < firstDay || i >= (howMany + firstDay)) { 
 
    $('#td-'+i).text(""); 
 
    } else { 
 
    $('#td-'+i).text(i-firstDay); 
 
} 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr> 
 
    <td id='td-1'></td> 
 
    </tr> 
 
    <tr> 
 
    <td id='td-2'></td> 
 
    </tr> 
 
    <tr> 
 
    <td id='td-3'></td> 
 
    </tr> 
 
    <tr> 
 
    <td id='td-4'></td> 
 
    </tr> 
 
    <tr> 
 
    <td id='td-5'></td> 
 
    </tr> 
 
    <tr> 
 
    <td id='td-6'></td> 
 
    </tr> 
 
</table>

0

Во-первых, пересмотреть положить большое количество идентификаторов по элементам по соображениям эффективности, но положить, что в сторону:

Там есть удобство обратного вызова для .each() в JQuery, который принимает увеличивается (текущий) индекс и ссылка на элемент.

В зависимости от структуры DOM, вы можете сделать:

$('td', '#mytable').each(function(ix, tdel){ 
    $(tdel).attr('id', 'td-' + ix).text(ix); // or $(this).attr... 
}); 

... и посмотреть, где она принимает вас.

Смежные вопросы