Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Покрасить динамическую таблицу (https://javascript.ru/forum/misc/69652-pokrasit-dinamicheskuyu-tablicu.html)

Огонек 09.07.2017 15:23

Покрасить динамическую таблицу
 
Здравствуйте
Есть скрипт (фрагмент)
$.each(my_orders, function() {
	html_orders += '<tr>';
	html_orders += '<td>'+this.id_order+'</td>';
	html_orders += '</tr>';
});

, который вставляет строки в таблицу:
<table class="tablem">
	<tbody>
	</tbody>
</table>


мне понадобилось покрасить строки этой таблицы. Для этого я вставил перед таблицей вот это
<style type="text/css">
	.tablem.colored { background: #9999ff; }
</style>

а скрипт изменил так
$.each(my_orders, function() {
	html_orders += '<tr class="colored">';
	html_orders += '<td>'+this.id_order+'</td>';
	html_orders += '</tr>';
});

В результате вместо покраски таблица съежилась в размерах на пол-экрана.
Нутром чувствую, что дело не в скрипте, но все равно решил спросить на этом форуме, потому что здесь на много больше адекватных людей, чем на многих других.

laimas 09.07.2017 15:27

.tablem .colored

Огонек 09.07.2017 15:36

Цитата:

Сообщение от laimas
.tablem .colored

Профессор, извините, вы имели в виду пробел?
не помогло

рони 09.07.2017 15:49

Огонек,
Цитата:

Сообщение от Огонек
background

.tablem .colored td, .tablem .colored{
      background-color:#9999ff;
  }

Огонек 09.07.2017 16:02

Цитата:

Сообщение от рони
.tablem .colored td, .tablem .colored{
      background-color:#9999ff;
  }

Нее, дело не в этом. Тоже самое. Но заметил следующее:
У меня скрипт формирует таблицу при открытии страницы и при нажатии некоторых кнопок, так вот при открытии строки не красятся, а если нажать на кнопочку, которая обновляет список (не страницу), то строки красятся.
Но таблица сжата на пол-экрана все равно.

j0hnik 09.07.2017 16:06

Цитата:

Сообщение от рони (Сообщение 458010)
Огонек,


.tablem .colored td, .tablem .colored{
      background-color:#9999ff;
  }

можно и просто background

<html>
<head>
	<meta charset="utf-8">
	<style>
	td{
		background: red;
	}
	</style>
</head>
<body>
	<table>
		<tr><td>rrr</td><td>rrr</td><td>rrr</td></tr>
		<tr><td>rrr</td><td>rrr</td><td>rrr</td></tr>
		<tr><td>rrr</td><td>rrr</td><td>rrr</td></tr>
		<tr><td>rrr</td><td>rrr</td><td>rrr</td></tr>
	</table>
</body>
</html>

рони 09.07.2017 16:11

Цитата:

Сообщение от j0hnik
можно и просто background

Цитата:

Сообщение от рони
Сообщение от Огонек
background

можно, но лучше не обнулять параметры, может выйти боком.

j0hnik 09.07.2017 16:12

Цитата:

Сообщение от рони (Сообщение 458014)
можно, но лучше не обнулять параметры, может выйти боком.

например?

Огонек 09.07.2017 16:13

Цитата:

Сообщение от j0hnik
можно и просто background

Покраски я добился, но она происходит только при повторном формировании таблицы по кнопке.
Уважаемый
Цитата:

Сообщение от j0hnik
j0hnik

вы меня уже один раз спасли в другой теме, там я нарушил порядок следования элементов сверху вниз. Помня это <style> я уже и перед и после скрипта ставил. ???

j0hnik 09.07.2017 16:16

Цитата:

Сообщение от Огонек (Сообщение 458016)
Покраски я добился, но она происходит только при повторном формировании таблицы по кнопке.
Уважаемый
вы меня уже один раз спасли в другой теме, там я нарушил порядок следования элементов сверху вниз. Помня это <style> я уже и перед и после скрипта ставил. ???

Да, было дело.

j0hnik 09.07.2017 16:18

Огонек, можно пример глянуть, так более понятно будет, ссылку или тут можно макетик сделать.

рони 09.07.2017 16:19

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

.tablem .colored td, .tablem .colored{
      background-color:#9999ff;
 }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
var html_orders = "", my_orders = [{id_order: 1},{id_order: 5},{id_order:12}]
$.each(my_orders, function() {
  html_orders += '<tr class="colored">';
  html_orders += '<td>'+this.id_order+'</td>';
  html_orders += '</tr>';
});


$(".tablem tbody").append(html_orders)
});
  </script>
</head>

<body>
<table class="tablem">
  <tbody>
  </tbody>
</table>


</body>
</html>

рони 09.07.2017 16:24

Цитата:

Сообщение от j0hnik
например?

куда исчез фон картинкой?
.tablem .colored td, .tablem .colored{
       background-image: url([url]https://javascript.ru/forum/images/ca_serenity/misc/logo.gif);[/url]

 }
.tablem .colored td, .tablem .colored{
      background:#9999ff;

 }

j0hnik 09.07.2017 16:36

Цитата:

Сообщение от рони (Сообщение 458020)
куда исчез фон картинкой?
.tablem .colored td, .tablem .colored{
       background-image: url([url]https://javascript.ru/forum/images/ca_serenity/misc/logo.gif);[/url]

 }
.tablem .colored td, .tablem .colored{
      background:#9999ff;

 }

я понял о чем вы, но обычно так не делают, если используют сокращенную запись, делают так
.tablem .colored td, .tablem .colored{
      background:#9999ff url(https://javascript.ru/forum/images/ca_serenity/misc/logo.gif);

 }

рони 09.07.2017 16:46

Цитата:

Сообщение от j0hnik
делают так

куда исчез background-size: cover; и т.д. ??? :)

j0hnik 09.07.2017 16:58

Цитата:

Сообщение от рони (Сообщение 458022)
куда исчез background-size: cover; и т.д. ??? :)

.tablem .colored td, .tablem .colored{
      background:#9999ff url(https://javascript.ru/forum/images/ca_serenity/misc/logo.gif);
background-size: cover;
 }

пожалуйста =)

рони 09.07.2017 17:23

Цитата:

Сообщение от j0hnik
пожалуйста =)

Цитата:

Ежики плакали, кололись, но продолжали жрать кактус...
:)

Огонек 09.07.2017 17:31

Я не пропал - нашел причину неудач. Как только изменил tablem на tablem1? сразу все заработало. Мое изменение стиля не имеет приоритета над файлом css. Может такое быть?

j0hnik 09.07.2017 17:38

Цитата:

Ежики плакали, кололись, но продолжали жрать кактус..
это ты про тех кто создал эту сокращенную запись? :-/

рони 09.07.2017 17:41

Цитата:

Сообщение от Огонек
Может такое быть?

да, нужен тот же путь указать что в css файле или присвоить таблице id и тогда
#tablem .colored td, #tablem .colored{
      background-color:#9999ff;

 }

Огонек 09.07.2017 17:43

Спасибо, все получилось.

рони 09.07.2017 17:43

Цитата:

Сообщение от j0hnik
эту сокращенную запись?

это как поглядеть, может как раз не сокращённая, а полная :) , для указания всех параметров.

j0hnik 09.07.2017 17:49

Цитата:

Сообщение от рони (Сообщение 458024)
:)

Цитата:

Сообщение от рони (Сообщение 458029)
это как поглядеть, может как раз не сокращённая, а полная :) , для указания всех параметров.

рони, где можно буквы экономить надо экономить :yes:

Огонек 09.07.2017 17:52

Хочу уточнить: Спасибо, господа.

рони 09.07.2017 17:57

Цитата:

Сообщение от j0hnik
где можно буквы экономить надо экономить

надо понимать, что перезапись 6 параметров в background, затратнее, чем одного в background-color.

j0hnik 09.07.2017 18:03

Цитата:

Сообщение от рони (Сообщение 458032)
надо понимать, что перезапись 6 параметров в background, затратнее, чем одного в background-color.

Будем учитывать.

laimas 10.07.2017 03:23

Цитата:

Сообщение от Огонек
вы имели в виду пробел?
не помогло

Помочь может только аспирин. ;) А .tablem.colored, это селектор эемента с составным классом "tablem colored", а не элемент с классом "colored", элемента с классом "tablem".


Часовой пояс GMT +3, время: 10:24.