Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.11.2010, 04:51
Интересующийся
Отправить личное сообщение для Djumpen Посмотреть профиль Найти все сообщения от Djumpen
 
Регистрация: 02.04.2010
Сообщений: 16

jQuery $().append | Problem with table creation
Здравствуйте. Помогите пожалуйста разобраться с работой ф-и из сабжа.

$('.mytable').append ("<tr>"); 
$('.mytable').append("<td> "+element+" </td> ");
$('.mytable').append("<td> "+country+" </td> ");
$('.mytable').append("<td> "+lenght+" </td>");
$('.mytable').append ("</tr>");


<table class="mytable" border="1">
	<tr>
		<td>Название</td> <td>Страна</td> <td>Длительность</td>
	</tr>
	<tr>
		<td>Фильм1</td> <td>США</td> <td>148мин</td>
	</tr>

</table>


Хотелось бы, чтобы функция добавляла новый row в конец таблици, но в обновленной DOM модели наблюдаю следующее (при добавлении 2-х элементов):

<table class="mytable" border="1">
<tbody>
	<tr>
		<td>Название</td> <td>Страна</td> <td>Длительность</td>
	</tr>
	<tr>
		<td>Фильм1</td> <td>США</td> <td>148мин</td>
	</tr>
<tr/>
<tr/>
</tbody>
<td>НовыйФильм1</td>
<td>США</td>
<td>94мин</td>
<td>НовыйФильм2</td>
<td>Россия</td>
<td>131мин</td>

</table>


Что не так, подскажите.
Ответить с цитированием
  #2 (permalink)  
Старый 23.11.2010, 08:17
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

После элемента table всегда идет tbody, даже если вы его не писали.

$('.mytable > tr').append ("<td />");
Ответить с цитированием
  #3 (permalink)  
Старый 23.11.2010, 14:54
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Сообщение от monolithed Посмотреть сообщение
После элемента table всегда идет tbody, даже если вы его не писали.

$('.mytable > tr').append ("<td />");
Только не >, или tbody > tr
Ответить с цитированием
  #4 (permalink)  
Старый 23.11.2010, 17:10
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от e1f
Только не >, или tbody > tr
ага, тогда уж, после создания tr: tr > td
Ответить с цитированием
  #5 (permalink)  
Старый 23.11.2010, 18:30
Интересующийся
Отправить личное сообщение для Djumpen Посмотреть профиль Найти все сообщения от Djumpen
 
Регистрация: 02.04.2010
Сообщений: 16

Извините, а можно конкретно строчку кода, как он должен выглядеть. "после создания tr: tr > td"
А то наверно что то неправильно делаю, не получилось.
Спасибо.
Ответить с цитированием
  #6 (permalink)  
Старый 23.11.2010, 18:49
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
    var array = [1,2,3];
    $('body').append('<table><tr/></table>');
        for(var i=0, j=0; j=array[i]; i++){
            $('table tbody > tr').append('<td style="border: 1px solid">'+array[i]+'</td>');
        }
});
</script>

Последний раз редактировалось monolithed, 23.11.2010 в 19:05.
Ответить с цитированием
  #7 (permalink)  
Старый 23.11.2010, 18:51
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Ололо, кокой кошмар. monolithed, скорость работы такого будет несколько удручающей...
Ответить с цитированием
  #8 (permalink)  
Старый 23.11.2010, 18:55
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Ну можно конечно по иному, но такой подход я в записках Рейсига видел
Доп. блин точно, подправил

Последний раз редактировалось monolithed, 23.11.2010 в 19:08.
Ответить с цитированием
  #9 (permalink)  
Старый 23.11.2010, 19:53
Интересующийся
Отправить личное сообщение для Djumpen Посмотреть профиль Найти все сообщения от Djumpen
 
Регистрация: 02.04.2010
Сообщений: 16

Ваш код создает во всех моих таблицах по 2 новых столбца (это без цикла вовсе) + создает новую таблицу. При повторной попытке добавить элементы разбрасывает их непонятно как.
И немножко задание поменялось: есть такая таблица:
<table id="mytable">
<tr>
<td> 1 </td> <td> 2 <td> <td> 3 </td>
</tr>
<tr id="app">
<td> 1 </td> <td> 2 <td> <td> 3 </td>
</tr>
<tr id="app2">
<td> 1 </td> <td> 2 <td> <td> 3 </td>
</tr>
</table>

То есть у меня одна таблица, но строки нужно будет записывать в разные места. Структура не обязательно такая, главное сам принцип. Пока что ничего хорошего не получилось =)
Ответить с цитированием
  #10 (permalink)  
Старый 23.11.2010, 20:12
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от Djumpen
Ваш код создает во всех моих таблицах по 2 новых столбца (это без цикла вовсе) + создает новую таблицу. При повторной попытке добавить элементы разбрасывает их непонятно как.
Мой код корректно создает следующую таблицу:
<table>
    <tr>
        <td> 1 </td>
        <td> 2 <td>
        <td> 3 </td>
    </tr>
</table>


Видимо вы просто скопировали код не поняв как он работает.

Сообщение от Djumpen
То есть у меня одна таблица, но строки нужно будет записывать в разные места.
В чем проблема-то?
Ответить с цитированием
Ответ



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

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