Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 15.02.2013, 16:27
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

убрал,чтобы не смущало.
Ответить с цитированием
  #32 (permalink)  
Старый 15.02.2013, 18:46
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

а как сделать чтобы row был не нулевой длины?
Ответить с цитированием
  #33 (permalink)  
Старый 15.02.2013, 18:54
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Зачем?
Ответить с цитированием
  #34 (permalink)  
Старый 15.02.2013, 19:07
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

Сообщение от danik.js Посмотреть сообщение
Тебе советы даешь, а ты их игнорируешь.

функция rew в случае когда pow нулевой длины - не возвращает ничего, в итоге получаем undefined.
Пытаюсь понять...
Ответить с цитированием
  #35 (permalink)  
Старый 15.02.2013, 20:11
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Бери выше - я уже два раза сказал про return внутри for{}
Ответить с цитированием
  #36 (permalink)  
Старый 16.02.2013, 11:27
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

danik.js-спасибо огромное!Всё получилось в лучшем виде.

Ещё вопрос.Как и где прописать -если k==m,то цвет ячейки красный.


<!DOCTYPE html>
<body>
<script>
var table, row, data;

table = document.createElement('table');
table.border = 1;
for (var k = 0; k < 4; k++) {
    row = document.createElement('tr');
    for (var m = 0; m < 5; m++) {
        data = document.createElement('td');
        data.innerHTML = "строка " +k+"; яч "+m;
        row.appendChild(data);
    }
    table.appendChild(row);
}
document.body.appendChild(table);
</script>
</body>
Ответить с цитированием
  #37 (permalink)  
Старый 16.02.2013, 13:04
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Кстати Deff прав (я с этим и не спорил) что через dom-методы таблица создается на порядок медленней. Я сделал тест, можно сравнить. Тем не менее, не во всех случаях dom-методы оказываются медленней (по крайней мере в современных браузерах), например можно поглядеть этот тест.

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

Алерт выведет время генерации таблицы в милисекундах.
<!DOCTYPE html>
<body>
<script>
var table, row, data;

/* delete */var tstart = new Date();
table = document.createElement('table');
table.border = 1;
for (var k = 0; k < 4; k++) {
    row = document.createElement('tr');
    for (var m = 0; m < 5; m++) {
        data = document.createElement('td');
        data.innerHTML = "строка " +k+"; яч "+m;
        if (k == m) {
            data.style.backgroundColor = 'red';
            //data.style.borderColor = 'red';
            //data.style.color = 'red';
        }
        row.appendChild(data);
    }
    table.appendChild(row);
}
document.body.appendChild(table);
/* delete */alert(new Date() - tstart);
</script>
</body>
Ответить с цитированием
  #38 (permalink)  
Старый 16.02.2013, 13:45
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

danik.js-спасибо!А,что получается, что самый быстрый для таблиц получается IE9?Если таблиц на сайте 1000 штук будет,всё-таки что лучше использовать.

А в таблице у Deffа как будет не подскажешь?
Что-то вроде,if(k==m){'<td.style.backgroundColor= "red">' } или где подсмотреть...

var strTabl="<table border=1><tbody>\n";
	for (k = 0; k < 4; k++) {
	    strTabl+= "\n<tr>\n";
	    for (m = 0; m < 5; m++) {
	     strTabl+= "<td + (k == m ? " style=color:red" : "") >"+"строка " +k+"; яч "+m+"</td>";
	    }  strTabl+=  "\n</tr>\n";
	}
	    strTabl+= "\n</tbody></table>";
document.write(strTabl);

Последний раз редактировалось dima***, 16.02.2013 в 14:23.
Ответить с цитированием
  #39 (permalink)  
Старый 16.02.2013, 13:59
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

strTabl+= "<td" + (k == m ? " style=color:red" : "") +">"+"строка " +k+"; яч "+m+"</td>";

Если все 1000 штук будут генерироваться за один раз, то лучше innerHTML
Ответить с цитированием
  #40 (permalink)  
Старый 16.02.2013, 14:05
Профессор
Отправить личное сообщение для dima*** Посмотреть профиль Найти все сообщения от dima***
 
Регистрация: 13.12.2012
Сообщений: 283

спасибо!
А если штук 5-10 на страницу?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать как в JQ? faforty Общие вопросы Javascript 8 14.11.2011 01:35
Как сделать таблицу ? denis_h2 Общие вопросы Javascript 3 16.02.2011 09:12
Сделать видимым select... Anneta Элементы интерфейса 7 12.01.2011 21:21
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06
Помогите сделать такое меню(( Lilith Я не знаю javascript 2 02.06.2009 02:31