Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Массив из html в jquery и вывод случайного элемента (https://javascript.ru/forum/jquery/45252-massiv-iz-html-v-jquery-i-vyvod-sluchajjnogo-ehlementa.html)

Yon Yonson 20.02.2014 17:20

Массив из html в jquery и вывод случайного элемента
 
Приветствую!
Возможно в названии изложил коряво тему.

Есть кусок html:
<div id="elements">
    <div id="container1">
        text 1
    </div>
    <div id="container2">
        text 2
    </div>
    <div id="container3">
        text 3
    </div>
</div>


Из него нужно сделать массив в jquery, и затем вывести из этого массива случайный какой-то один элемент.

Пока только таким кодом собрал все эти дивы
<script type="text/javascript">
         $('document').ready(function () {
 
			var divs = $('#elements div');
 
         });
 
     </script>

рони 20.02.2014 17:23

Yon Yonson,
:blink:
нужен скрипт ротатора DIV блоков при перезагрузке страницы - 10$

ruslan_mart 21.02.2014 11:12

var divs = $('#elements div'), div;

div = divs.eq(Math.floor(Math.random() * divs.length));


div - случайно выбранный элемент из divs;

Yon Yonson 24.02.2014 21:46

Спасибо за советы, но как теперь сделать массив уже в js из такого содержимого и вывести элемент рандомно?

<div id="elements">
    <div id="container1">
        text 1
    </div>
    <div id="container2">
        text 2
    </div>
    <div id="container3">
        text 3
    </div>
</div>

рони 24.02.2014 22:21

Yon Yonson,
:blink:
<!DOCTYPE HTML>
<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  #elements div{
     display: none;
  }
  </style>
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script>
$(function () {
var divs = $('#elements div'), div;
div = divs.eq(Math.floor(Math.random() * divs.length));
div.show()
         });
    </script>
</head>

<body>
 <div id="elements">
    <div id="container1">
        text 1
    </div>
    <div id="container2">
        text 2
    </div>
    <div id="container3">
        text 3
    </div>
</div>
</body>
</html>

Yon Yonson 25.02.2014 00:42

Я собираюсь подключить скрипт этого ротатора к нескольким файлам шаблона у себя на сайте, т.к. меняться они будут часто, и чтобы не лазить каждый раз по всем файлам, то будет подключен отдельный js, который буду менять, я этого не учел изначально.
И в сообщении выше опять же криво пытался изложить.
Т.е. у меня будет в файлах шаблона подключен скрипт и на странице будет див:
<div id="banner"></div>


А сам файл js такой:

$('document').ready(function () {

			var arr = [ 
			    <div id="container1">
			        text 1
			    </div>, 
 			    <div id="container2">
			        text 2
			    </div>, 

			    <div id="container2">
			        text 2
			    </div>
			];
			document.getElementById('banner').appendChild( 
			      arr[Math.floor(Math.random() * arr.length)]
			)
			
 
         });


Я попытался составить схематично js файл, не принимайте всерьез.
Заранее спасибо.

рони 25.02.2014 01:11

Yon Yonson,
после ссылки во 2 посту -- все остальные сообщения лишние в данной теме, если вопросы всётаки есть тогда тудаже в разделе работа создайте тему и укажите цену.

ruslan_mart 25.02.2014 14:05

$(function() {
   var banner = $('#banner'), divs = [], rand;

   divs[0] = 'content 1';
   divs[1] = 'content 2';
   divs[2] = 'content 3';

   rand = Math.floor(Math.random() * divs.length);

   banner.html('<div id="container' + (rand + 1) + '">' + divs[rand] + '</div>');
});


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