Может кто-нибудь сказать мне, почему этот вызов функции javascript не работает? - PullRequest
0 голосов
/ 21 сентября 2011

Вот jsFiddle

Fiddle

JavaScript:

 function createTable(tbody, rows, cols) {
     if (tbody == null || tbody.length < 1) return;
     for (var r = 1; r <= rows; r++) {
         var trow = $("<tr>");
         for (var c = 1; c <= cols; c++) {
             $("<td>")
                     .text("Table")
                     //.createElement("div")
                     .appendTo(trow);
         }
         trow.appendTo(tbody);
     }
 }   


$(document).ready(function() {
  createTable($("#table"), 4, 4);
});

HTML:

<table id="table" border="1">
    <tbody>
    </tbody>
</table>
----------------------------
<table id="table1" border="1">
    <tbody>
    </tbody>
</table>

<br><br>
Select table size?
<form>
    <input type="button" value="4X4" onclick="createTable('table1', 4, 4)">
</form>

Функция JavaScript, вызываемая JavaScript, работает нормально (таблица), но функция JavaScript, вызываемая OnClick, не работает (таблица1). Можете ли вы сказать мне, почему?

Также кто-нибудь знает, почему createElement("div") тоже не работает?

Ответы [ 5 ]

2 голосов
/ 21 сентября 2011
2 голосов
/ 21 сентября 2011

Вы должны использовать no wrap в скрипте, а jQuery не имеет createElement метода (так как вы вызываете его как метод jQuery). Вы можете использовать .append ()

Fiddle

2 голосов
/ 21 сентября 2011

Исправлено http://jsfiddle.net/7WD8v/6/

Вам нужно было загрузить свой скрипт в голову, чтобы он был доступен для этого ввода

0 голосов
/ 21 сентября 2011

Поскольку в OnClick вы передаете String в качестве значения первого аргумента, а при вызове js передается коллекция элементов.

0 голосов
/ 21 сентября 2011

вам нужно передать объект по клику

createTable($('#table1'), 4, 4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...