powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как правильно сформировать команду программно?
6 сообщений из 6, страница 1 из 1
Как правильно сформировать команду программно?
    #39355364
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос вроде и не сложный - но в Интернете не нашёл. А может неправильно искал.
В общем - вот такой код (для примера, поэтому не пинайте за громоздкость):
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
function Znachenie() {
        //Нутром чую, что следующие 10 строк можно сформировать в 1 цикле, но не выходит :(
	document.getElementById('tr1').getElementsByTagName('td')[1].innerText='цифра 0';
	document.getElementById('tr2').getElementsByTagName('td')[1].innerText='цифра 1';
	document.getElementById('tr3').getElementsByTagName('td')[1].innerText='цифра 2';
	document.getElementById('tr4').getElementsByTagName('td')[1].innerText='цифра 3';
	document.getElementById('tr5').getElementsByTagName('td')[1].innerText='цифра 4';
	document.getElementById('tr6').getElementsByTagName('td')[1].innerText='цифра 5';
	document.getElementById('tr7').getElementsByTagName('td')[1].innerText='цифра 6';
	document.getElementById('tr8').getElementsByTagName('td')[1].innerText='цифра 7';
	document.getElementById('tr9').getElementsByTagName('td')[1].innerText='цифра 8';
	document.getElementById('tr10').getElementsByTagName('td')[1].innerText='цифра 9';
	
        //Пробовал вот так - не выходит:
	for (var i = 0; i < 10; i++) //Строка ниже - не понимается JavaScript'ом :(
		{document.getElementById('tr'+(i-1)).getElementsByTagName('td')[1].innerText='цифра '+i;}

        // ...даже пытался подставить вместо каждого tr
        //выражение function(){return 'tr'+(i-1)} - всё равно не выходит
}


Я знаю, что в других языках, с которыми я раньше работал - это делается элементарно.
Предполагаю, что и в JS - это тоже возможно. Только пока не могу найти, КАК :(
Подскажите, пожалуйста.
...
Рейтинг: 0 / 0
Как правильно сформировать команду программно?
    #39355367
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka, откройте для себя отладку.
...
Рейтинг: 0 / 0
Как правильно сформировать команду программно?
    #39355368
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
neznajka, ответьте на следующий вопрос:

У Вас идентификаторы элементов от одного до десяти включительно. Почему же цикл от нуля до девяти и при этом Вы ещё и единицу вычитаете?
...
Рейтинг: 0 / 0
Как правильно сформировать команду программно?
    #39355371
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
<!DOCTYPE html>
<html>
<head></head>
<body>
  <table>
    <tr id="tr1"><td>a.</td><td></td></tr>
    <tr id="tr2"><td>b.</td><td></td></tr>
    <tr id="tr3"><td>c.</td><td></td></tr>
    <tr id="tr4"><td>d.</td><td></td></tr>
    <tr id="tr5"><td>e.</td><td></td></tr>
    <tr id="tr6"><td>f.</td><td></td></tr>
    <tr id="tr7"><td>g.</td><td></td></tr>
    <tr id="tr8"><td>h.</td><td></td></tr>
    <tr id="tr9"><td>i.</td><td></td></tr>
    <tr id="tr10"><td>j.</td><td></td></tr>
  </table>
  <script>
    for (var i = 1; i <= 10; i++) {
      document.getElementById('tr' + i).getElementsByTagName('td')[1].innerText = 'цифра ' + i;
    }
  </script>
</body>
</html>
...
Рейтинг: 0 / 0
Как правильно сформировать команду программно?
    #39355376
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но ИМХО лучше воспользоваться API: https://developer.mozilla.org/ru/docs/Web/API/HTMLTableElement

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<!DOCTYPE html>
<html>
<head></head>
<body>
  <table id="table">
    <tr><td>a.</td><td></td></tr>
    <tr><td>b.</td><td></td></tr>
    <tr><td>c.</td><td></td></tr>
    <tr><td>d.</td><td></td></tr>
    <tr><td>e.</td><td></td></tr>
    <tr><td>f.</td><td></td></tr>
    <tr><td>g.</td><td></td></tr>
    <tr><td>h.</td><td></td></tr>
    <tr><td>i.</td><td></td></tr>
    <tr><td>j.</td><td></td></tr>
  </table>
  <script>
    var i, row, table = document.getElementById('table');
    
    for (i = 0; i < table.rows.length; i++) {
      row = table.rows[i];
      row.cells[1].innerText = 'цифра ' + (i + 1);
    }
  </script>
</body>
</html>
...
Рейтинг: 0 / 0
Как правильно сформировать команду программно?
    #39355393
Фотография neznajka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, skyANA, - Вы правы, недосмотрел я с минусом :(
Просто в 3 часа ночи уже доделывал - мозги уже отключались.
А насчёт сокращения кода - (row = table.rows[i]) - это я знаю, уже сделал почти похоже. Просто в вопрос вставил ещё свой "ночной вариант", т.к. само такое сокращение не влияло на суть вопроса. А отладчиком я пользовался - именно он мне и указывал на НЕсуществование таких объектов - просто я не понимал, ПОЧЕМУ они не существуют. А теперь, когда Вы обратили моё внимание на то, что я перепутал знак после i - теперь понимаю. Это ж очевидно, оказалось. Sorry, и спасибо Вам!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Как правильно сформировать команду программно?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]