Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.12.2018, 18:09
Аспирант
Отправить личное сообщение для garrip91 Посмотреть профиль Найти все сообщения от garrip91
 
Регистрация: 07.10.2018
Сообщений: 75

Вставка переменных/функций/классов/объектов и всего прочего в "div"-блоки!
var j = 1;
var msg = '';
while (j <= 10) {
	msg += j +' x 3 = ' + (j * 3) + '<br>';
	j++;
	};
document.write(msg);


<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Таблица умножения</title>

    <!-- Bootstrap -->
    <link href="assets/css/bootstrap.min.css" rel="stylesheet">
	<link rel="stylesheet" href="assets/css/style.css">

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
	
	<div class="container-fluid">
		<div class="row">
			<div class="col-lg-12 col-md-12 col-sm-6 col-xs-3">
				<div class="row">
					<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
						*!*<div class="table_1"></div>*/!* // а именно здесь я специально создал отдельный селектор для того, чтобы вставить сюда 1 из колонок (дальше, естественно, я аналогичным способом буду остальные колонки распихивать по остальным блокам) 
					</div>
					<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
						<div></div>
					</div>
					<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
						<div></div>
					</div>
					<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
						<div></div>
					</div>
					<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
						<div></div>
					</div>
					<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
						<div></div>
					</div>
					<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
						<div></div>
					</div>
					<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
						<div></div>
					</div>
					<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
						<div></div>
					</div>
					<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
						<div></div>
					</div>
					<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
						<div></div>
					</div>
					<div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
						<div></div>
					</div>
				</div>
			</div>
		</div>
	</div>

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="assets/js/bootstrap.min.js"></script>
  </body>


===============================================


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

1. КАК В ДАННОМ СЛУЧАЕ Я СМОГ СВОЮ ПЕРЕМЕННУЮ "msg" ВСТАВИТЬ В "div"-БЛОК (для начала в тот, что с селектором "table_1") ТАКИМ ОБРАЗОМ, ЧТОБЫ ТАМ МОЖНО БЫЛО УВИДЕТЬ ВСЮ КОЛОНКУ ИЗ ТАБЛИЦЫ УМНОЖЕНИЯ???
2. А КАК БЫ ВЫ НА МОЁМ МЕСТЕ ЭТО СДЕЛАЛИ?...

Последний раз редактировалось garrip91, 24.12.2018 в 21:06.
Ответить с цитированием
  #2 (permalink)  
Старый 24.12.2018, 18:31
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

garrip91,
https://learn.javascript.ru/modifying-document
https://learn.javascript.ru/multi-insert
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 24.12.2018, 19:28
Аспирант
Отправить личное сообщение для garrip91 Посмотреть профиль Найти все сообщения от garrip91
 
Регистрация: 07.10.2018
Сообщений: 75

Отредактировал, добавив "run" к названиям открывающихся тегов.
Не помогло!
Ответить с цитированием
  #4 (permalink)  
Старый 24.12.2018, 19:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

Сообщение от garrip91
Отредактировал, добавив "run"
нужно добавить теги!!! а не свои редатировать.
Ответить с цитированием
  #5 (permalink)  
Старый 24.12.2018, 21:03
Аспирант
Отправить личное сообщение для garrip91 Посмотреть профиль Найти все сообщения от garrip91
 
Регистрация: 07.10.2018
Сообщений: 75

В продолжение диалога......
Опять же несовсем Вас понял... Но покопался, покопался и только что заметил какие-то изменения
Ответить с цитированием
  #6 (permalink)  
Старый 24.12.2018, 23:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

garrip91,
<!DOCTYPE html>
<html>
<head>
        <meta charset="utf-8">
</head>
    <body>

    <div class="container-fluid">
        <div class="row">
            <div class="col-lg-12 col-md-12 col-sm-6 col-xs-3">
                <div class="row">
                    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
                        <div class="table_1"></div> // а именно здесь я специально создал отдельный селектор для того, чтобы вставить сюда 1 из колонок (дальше, естественно, я аналогичным способом буду остальные колонки распихивать по остальным блокам)
                    </div>
                    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
                        <div></div>
                    </div>
                    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
                        <div></div>
                    </div>
                    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
                        <div></div>
                    </div>
                    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
                        <div></div>
                    </div>
                    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
                        <div></div>
                    </div>
                    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
                        <div></div>
                    </div>
                    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
                        <div></div>
                    </div>
                    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
                        <div></div>
                    </div>
                    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
                        <div></div>
                    </div>
                    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
                        <div></div>
                    </div>
                    <div class="col-lg-1 col-md-1 col-sm-1 col-xs-1">
                        <div></div>
                    </div>
                </div>
            </div>
        </div>
    </div>
   <script>
document.addEventListener("DOMContentLoaded", function() {
    var j = 1;
    var msg = "";
    while (j <= 10) {
        msg += j + " x 3 = " + j * 3 + "<br>";
        j++
    }
    document.querySelector(".table_1").innerHTML = msg
});
   </script>
    </body>

</html>
Ответить с цитированием
  #7 (permalink)  
Старый 25.12.2018, 01:12
Аспирант
Отправить личное сообщение для garrip91 Посмотреть профиль Найти все сообщения от garrip91
 
Регистрация: 07.10.2018
Сообщений: 75

Спасибо Вам большое, уважаемый РОНИ!!!
Ваш код мне помог!
Ответить с цитированием
  #8 (permalink)  
Старый 27.12.2018, 22:05
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от garrip91
2. А КАК БЫ ВЫ НА МОЁМ МЕСТЕ ЭТО СДЕЛАЛИ?
Уже из самого названия вашего проекта известно, что подходящим элементом будет <table>. Размер таблицы умножения может быть разным. Например, вас могут интересовать произведения чисел от 2 до 9 на 5. Также вас может интересовать конкретно какой-то особенный кусочек таблицы умножения. Например, произведения от 3×7 до 5×9 тоже составляют таблицу умножения. Или все произведения двухзначных чисел от 10 до 20 (получается таблица умножения от 10×10 до 20×20). Такие параметры таблицы умножения можно указать через собственный атрибут data-multiplication-range, например, в формате JSON. Для того, что бы описать простую таблицу умножения, достаточно 4 числа — первые два указывают на произведение этих чисел в левом верхнем углу таблицы, а оставшиеся два — на произведение этих чисел в правом нижнем углу таблицы. Т. е. чтобы отобразить в вашем приложении таблицу умножения, достаточно следующего кода HTML.

<table data-multiplication-range="[1,3, 10,9]"></table>


Теперь достаточно дописать скрипт, который превращал бы данную таблицу в полноценную таблицу умножения. Также я добавил стили, но они играют чисто косметичекую роль.

<!DOCTYPE html>
<html lang="ru">
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Таблица умножения</title>
	<style>
		
[data-multiplication-range],
[data-multiplication-range] tbody,
[data-multiplication-range] tr,
[data-multiplication-range] td
{
	display: block;
}

[data-multiplication-range] {
	margin: 1em;
}

[data-multiplication-range] tbody {
	display: flex;
	flex-wrap: wrap;
}

[data-multiplication-range] tr {
	margin-bottom: .3em;
}

[data-multiplication-range] td {
	--border-width: 1px;
	border: var(--border-width) solid #aaa;
	margin-top: calc(-1 * var(--border-width));
	margin-left: calc(-1 * var(--border-width));
	padding: .25em .5em;
	white-space: nowrap;
}

[data-multiplication-range] td:nth-child(odd) {
	background: rgba(0, 0, 0, 0.1);
}
	
	</style>
</head>
<body>
	<table data-multiplication-range="[2,5, 9,5]"></table>
	<table data-multiplication-range="[5,2, 5,9]"></table>
	<table data-multiplication-range="[3,7, 5,9]"></table>
	<table data-multiplication-range="[1,3, 10,9]"></table>
	<table data-multiplication-range="[10,10, 20,20]"></table>
	<script>
		
for(const table of document.querySelectorAll("[data-multiplication-range]")) {
	const [fromX, fromY, toX, toY] = JSON.parse(table.dataset.multiplicationRange);
	
	const tBody = table.createTBody();
	
	for(let y = fromY; y <= toY; y++) {
		const row = tBody.insertRow();
		
		for(let x = fromX; x <= toX; x++) {
			const cell = row.insertCell();
			cell.textContent = `${x} × ${y} = ${x * y}`;
		}
	}
}
		
	</script>
</body>
</html>


P.S. Для тех, кто изучает JavaScript.
Вместо того, чтобы искать подходящие таблицы, как это сделано в примере выше (с атрибутом data-multiplication-range), попробуйте создать свой собственный элемент <multiplication-table> с собственным атрибутом range, при изменении которого, будет отрисовываться соответствующая таблица. (или сделайте расширение элемента при помощи атрибута is)

Возможные варианты использования
<multiplication-table range="[1,3, 10,9]"></multiplication-table>

<multiplication-table from="1×3" to="10×9"></multiplication-table>

Или придумайте другие названия и атрибуты!

https://developer.mozilla.org/en-US/...ustom_elements

P. P. S
Сообщение от рони
Привет! Вы куда-то пропали с форума, всё ли у вас в порядке?
Всё в порядке. Я не пропал, вот я тут печатаю, значит не пропал. (Ну я же не буду отвечать подряд на все вопросы, даже не на те, типо как скрыть кнопку/текстик/картиночку при помощи jQuery, несмотря на то, что есть <details>)

Последний раз редактировалось Malleys, 27.12.2018 в 22:16.
Ответить с цитированием
Ответ



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

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