Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.08.2013, 17:54
Новичок на форуме
Отправить личное сообщение для Narm0 Посмотреть профиль Найти все сообщения от Narm0
 
Регистрация: 05.08.2013
Сообщений: 8

Вывод случайных элементов из массива в таблицу
Добрый день.
Существуют 2 массива. Первый с названием организаций, второй с операцией.

<script>
var arr = ['АвтоМир', 'Авто-Ойл', 'Автоспутник', 'Автотест'];
var arr1 = ['Плановое продление ЭЦП', 'Помощь с отчетом', 'Переустановка'];
</script>


Скрипт для случайной выборки элементов.

<script>
document.write(arr[Math.round(Math.random()*(arr.length-1))]);
</script>


Я смог сделать вывод элементов в таблицу путем копирования ячеек и вставки в них скрипта.

<table>
  <tr>
    <td>
      <script>
        document.write(arr[Math.round(Math.random()*(arr.length-1))]);
      </script>
    </td>
    <td>
      <script>
        document.write(arr1[Math.round(Math.random()*(arr1.length-1))]);
      </script>
    </td>
  </tr>
</table>


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

<script>
  onclick = function(){document.getElementById ('ttd').innerHTML = arr[Math.round(Math.random()*(arr.length-1))];}
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 05.08.2013, 19:27
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

наверное, стоит разделить случайную выборку и построение таблицы?..

не очень понял задачу, но есть нужно некий массив "встряхнуть" чтобы он в случайном порядке перепутался, то вот способ из учебника, а потом этот "перетрАхнутый" массив вывести в таблицу построчно обычными методами джаваскрипт.
Ответить с цитированием
  #3 (permalink)  
Старый 06.08.2013, 08:55
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,223

Сообщение от Narm0
можно ли сделать нечто подобное(создание таблицы и вывод случайных элементов в нее) путем нажатия одной кнопки
Разумеется можно!
Как вариант...

<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function test() {
	var a=[];
	a[0] = ['АвтоМир', 'Авто-Ойл', 'Автоспутник', 'Автотест'];
	a[1] = ['Плановое продление ЭЦП', 'Помощь с отчетом', 'Переустановка'];
	var n=10;
	var l=[a[0].length,a[1].length];
	var ot=document.getElementById('test');
	var or,oc,k;
	for (var i=0; i<n; i++) {
		or=ot.insertRow(-1);
		for (var j=0; j<2; j++) {
			oc=or.insertCell(j);
			k=Math.random()*(l[j]-1);
			k=Math.round(k);
			k=a[j][k];
			oc.innerHTML=k;
		};
	};
};
</script>
</head>
<body>
<table id='test' border='1'>
</table>
<button onclick='test();'>Go</button>
</body>
</html>

Последний раз редактировалось ksa, 06.08.2013 в 08:57.
Ответить с цитированием
  #4 (permalink)  
Старый 06.08.2013, 09:01
Новичок на форуме
Отправить личное сообщение для Narm0 Посмотреть профиль Найти все сообщения от Narm0
 
Регистрация: 05.08.2013
Сообщений: 8

Всем спасибо, буду пробовать.
Ответить с цитированием
  #5 (permalink)  
Старый 06.08.2013, 09:54
Новичок на форуме
Отправить личное сообщение для Narm0 Посмотреть профиль Найти все сообщения от Narm0
 
Регистрация: 05.08.2013
Сообщений: 8

все получилось так как надо, только вот как сделать так, чтобы таблица не рисовалась вниз при каждом нажатии на кнопку. Хотелось бы, чтобы новые результаты генерировались в таблице определенного размера, например, 2 на 50(2 колонки, 50 строк). Т.е. при нажатии на кнопку изменялось только содержимое таблицы (случайным образом).
Ответить с цитированием
  #6 (permalink)  
Старый 06.08.2013, 09:56
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,223

Сообщение от Narm0
Хотелось бы ...
Хотения свои чем подкрепишь?
Ответить с цитированием
  #7 (permalink)  
Старый 06.08.2013, 10:03
Новичок на форуме
Отправить личное сообщение для Narm0 Посмотреть профиль Найти все сообщения от Narm0
 
Регистрация: 05.08.2013
Сообщений: 8

Криками шэфа на тему необходимости данной таблицы=)
Ответить с цитированием
  #8 (permalink)  
Старый 06.08.2013, 10:40
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,223

Сообщение от Narm0
Криками шэфа на тему необходимости данной таблицы
Скажи ему, что пора раскошеливаться...
Ответить с цитированием
  #9 (permalink)  
Старый 06.08.2013, 10:59
Новичок на форуме
Отправить личное сообщение для Narm0 Посмотреть профиль Найти все сообщения от Narm0
 
Регистрация: 05.08.2013
Сообщений: 8

Ну да, очень смешно
Ответить с цитированием
  #10 (permalink)  
Старый 06.08.2013, 12:05
Аватар для deivan
Профессор
Отправить личное сообщение для deivan Посмотреть профиль Найти все сообщения от deivan
 
Регистрация: 02.08.2012
Сообщений: 293

Коллега имел ввиду, что здесь не принято забесплатно выполнять работу за других.

А вот решить конкретную проблему в коде - пожалуйста. Задавайте вопрос, что и где не получается.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить количество отрицательных элементов массива Тип_1 Общие вопросы Javascript 3 25.06.2012 18:24
поочередный вывод элементов массива seosovest Общие вопросы Javascript 7 09.04.2012 10:47
вывод поочередно элементов массива Димтрий Элементы интерфейса 17 07.03.2012 00:43
Вывод переменного по количеству элементов массива из json ArmagedDance Элементы интерфейса 4 08.06.2011 10:45
вставка элементов массива в текстовую форму по клику olezyk Общие вопросы Javascript 3 21.03.2009 22:01