Помогите изменить функцию на JavaScript

S
На сайте с 06.08.2007
Offline
14
1124

Есть скрипт:

<script language="javascript">

<!--
var maxi = 10;
function funcview()
{
for (var i = 0; i < maxi; i++)
{
document.getElementById('view').innerHTML += '<li><div>Вот тут текст...</div><br></li>';
}
}
-->
</script>

выдает он список, а мне надо выдачу в таблице, например 3 горизонтально, второй ряд еще 3, и т.д (примерно так:

<table><tr>

<td>Вот тут текст</td>

<td>Вот тут текст</td>

<td>Вот тут текст</td>

</tr>

<tr>

<td>Вот тут текст</td>

<td>Вот тут текст</td>

<td>Вот тут текст</td>

</tr></table>,

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

K
На сайте с 12.07.2006
Offline
295
Kpd
#1

simolin, например,

<script language="javascript">

<!--
var maxi = 3;
function funcview()
{
document.getElementById('view').innerHTML += '<table><tr>';
for (var i = 0; i < maxi; i++)
{
document.getElementById('view').innerHTML += '<td>Вот тут текст...</td>';
}
document.getElementById('view').innerHTML += '</tr><tr>';
for (var i = 0; i < maxi; i++)
{
document.getElementById('view').innerHTML += '<td>Вот тут текст...</td>';
}
document.getElementById('view').innerHTML += '</tr></table>';
}
-->
</script>
[Удален]
#2

<script language="javascript">
<!--
var maxi = 10;
function funcview() {
document.write('<table border=1>');
for (var i = 0; i < maxi; i++) {
if (0 == i % 3) document.write('<tr>');
document.write('<td>тру-ла-ла...</td>');
}
document.write('</table>');
}
-->
</script>
S
На сайте с 20.04.2004
Offline
145
sss
#3


<html>
<body>
<div id="view">123213</div>
<script>
{
var maxtr=3;
var maxtd=5;
var txt= '<table border=1>';
for (var tr = 0; tr < maxtr; tr++)
{
txt += '<tr>';
for (var td = 0; td < maxtd; td++)
{
txt += '<td>Вот тут текст...</td>';
}
txt += '</tr>';
}
txt += '</table>';
document.getElementById('view').innerHTML+=txt;
}
</script>
</body></html>

не пытайтесь добавить .innerHTML+='<table>';

или попробуйте и alert(document.getElementById('view').innerHTML); ;)

вообще-то правильнее не так делать а через


<html>
<body>
<div id="view">111</div>

<script>
var tabl=document.createElement("TABLE");
document.getElementById('view').appendChild(tabl);
var tbody = document.getElementById('view').getElementsByTagName("TABLE")[0];;

var maxtr=3;
var maxtd=5;
for (tr=0; tr<maxtr; tr++)
{
var row = document.createElement("TR");
for (td=0; td<maxtd; td++)
{
eval('var td'+td+' = document.createElement("TD");');
eval('td'+td+'.appendChild(document.createTextNode("'+tr+'x'+td+'"));');
eval('row.appendChild(td'+td+');');
}
tbody.appendChild(row);
}

</script>
</body></html>

sss добавил 03.03.2008 в 17:59

Kpd:
simolin, например,
<script language="javascript">
<!--
var maxi = 3;
function funcview()
{
document.getElementById('view').innerHTML += '<table><tr>';
for (var i = 0; i < maxi; i++)
{
document.getElementById('view').innerHTML += '<td>Вот тут текст...</td>';
}
document.getElementById('view').innerHTML += '</tr><tr>';
for (var i = 0; i < maxi; i++)
{
document.getElementById('view').innerHTML += '<td>Вот тут текст...</td>';
}
document.getElementById('view').innerHTML += '</tr></table>';
}
-->
</script>

ваш код кажется логичным, но работать будет не так ;)

alert(document.getElementById('view').innerHTML);

после первого добавления текста в innerHTML и увидите очень интересную вещь ;)

sss добавил 03.03.2008 в 18:01

javadf:
<script language="javascript">
<!--
var maxi = 10;
function funcview() {
document.write('<table border=1>');
for (var i = 0; i < maxi; i++) {
if (0 == i % 3) document.write('<tr>');
document.write('<td>тру-ла-ла...</td>');
}
document.write('</table>');
}
-->
</script>

document.write и document.getElementById('view').innerHTML += .... ведут себя по-разному если добавлять табличку ;) а смысл был явно не при создании вписать таблицу, а добавить ее потом...

[Удален]
#4

правильнее вообще забыть как страшный сон создание каких-либо HTML-сущностей на яваскрипте :)

S
На сайте с 20.04.2004
Offline
145
sss
#5

лучше стараться вообще JS минимизировать, это точно :)

S
На сайте с 06.08.2007
Offline
14
#6

спасибо всем, а особенно sss, все заработало :)

Dreammaker
На сайте с 20.04.2006
Offline
569
#7
sss:
лучше стараться вообще JS минимизировать, это точно

Ваши слова да программерам Вбюллетня - до сих пор бы "Быстрого добавления" и "Быстрого редактирования" не было бы :)

[Удален]
#8
Dreammaker:
Ваши слова да программерам Вбюллетня - до сих пор бы "Быстрого добавления" и "Быстрого редактирования" не было бы :)

вот вот...

П.С вообще использование innerHTML это не очень хорошо... лучше методами DOM пользоваться...

Виктория Родочинская добавил 05.03.2008 в 20:30

javadf:
правильнее вообще забыть как страшный сон создание каких-либо HTML-сущностей на яваскрипте :)

HTML сущности это вот http://www.mexxs.net/reviews.php?file=39

П.С вы имели в виду html тэгов) так об этом я писала выше)

N_MONax
На сайте с 22.08.2007
Offline
112
#9

- удалено -

Полный спектр услуг в интернете. Быстро, Качественно, Дорого. Пишите в личку.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий