getElementById в цикле FOR не работает - PullRequest
1 голос
/ 26 июня 2010

Я не уверен, почему это не работает.

У меня есть список записей текстовых полей в форме:

<input type="text" id="x1_Order">
<input type="text" id="x2_Order">
<input type="text" id="x3_Order">
<input type="text" id="x4_Order">
<input type="text" id="x5_Order">
...
<input type="text" id="x253_Order">
<input type="text" id="x254_Order">
<input type="text" id="x255_Order">

$ NumberOfTotalRecords = 255

И используя этот PHP / Javascript:

<a href="#" onclick="for(i=0;i<=<?= $NumberOfTotalRecords ?>;i++){document.getElementById('x' . i . '_Order').value=i;}">Function</a>

Когда я нажимаю ссылку Функция для запуска JavaScript, в консоли Google Chrome Developer Javascript Console появляется эта ошибка:

Uncaught SyntaxError: Unexpected string

Ответы [ 3 ]

2 голосов
/ 26 июня 2010

Лучший способ сделать это следующим образом

<script type="text/javascript">    
    function abc() {
      for(i=1;i<=<?= $NumberOfTotalRecords ?>;i++){
        document.getElementById('x'+i+'_Order').value=i;
      }
    }
</script>

   <a href="#" onclick="abc()">Function</a>
2 голосов
/ 26 июня 2010
<a href="#" onclick="for(i=0;i<=<?= $NumberOfTotalRecords ?>;i++){document.getElementById('x' . i . '_Order').value=i;}">Function</a>

Оператор . - это конкатенация строк в php.Попробуйте использовать оператор + для конкатенации строк в javascript.

document.getElementById('x' + i + '_Order')
0 голосов
/ 26 июня 2010

Оператор concat в javascript - это +, а не.

...