Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: помогите вычеслить элемент

var w
var span = document.querySelectorAll('span')
for (var i = 0; i < span.length; i++) {

    if ((span[i].textContent).indexOf("Moscow") > -1) {
       

        break;
    }

}

w=i
setTimeout(function() {

    for (i = i; i<w-10; i--) 
        if ((span[i].innerText).indexOf("2.3") > -1) {

            span[i].click()
        }
    console.log(i)
console.log(w)
}, 2000)

нужно найти на странице спан с именем moscow
записать значение переменной i
и начиная с этого значения к примеру i=54
циклом искать имя 2.3 увеличив переменную i не более чем на 10 раз
если элемент с именем 2.3 найден то кликнуть по нему
не могу понять помогите!
Ответ: плюс к карме спасибо
Вопрос: z-index у элемента внутри Canvas'a

Ребят, помогите разобраться. Элемент класса arc находясь внутри Canvas просто не отображается! Canvas его перекрывает( Если его поместить вне блока Canvas - все ок, но он мне нужен внутри.
<canvas id="canvasA">
<div id="1M0" class="arc" style="top: 214px; left: 774px;">Create</div>
</canvas>



#canvasA {
    width: 700px;
    height: 500px;
    z-index: 0;
    position: relative;
    margin: auto;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
}
canvas {
    user-select: none;
    -ms-user-select: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -webkit-touch-callout: none;
    -webkit-user-drag: none;
    z-index:0;
}

.arc{
	position:fixed;
	width:50px;
	height:50px;
	border-radius:25px;
	background-color:#000080;
	color:#FFFFFF;
	font-size:9px;
	display: -webkit-box;
	display: -moz-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
	-webkit-box-align: center;
	-moz-box-align: center;
	-ms-flex-align: center;
	-webkit-align-items: center;
	align-items: center;
	-webkit-box-pack: center;
	-moz-box-pack: center;
	-ms-flex-pack: center;
	-webkit-justify-content: center;
	justify-content: center;
	-webkit-touch-callout: none;
	-webkit-user-select: none;
	-khtml-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	-o-user-select: none;
	user-select: none;
	z-index:1000;
	opacity: 0.7;
}
Ответ: пасиб, мои поиски привели к тому же самому результату)
Вопрос: Сгруппировать элементы

Добрый день!
Помогите сгруппировать элементы.

Есть массив объектов:

[
{areaCode: "019-001", areaName: "019-001", status: "НЕ-ПРОВЕРЯЛСЯ", amount: 8},
{areaCode: "019-001", areaName: "019-001", status: "ПРОВЕРЕН", amount: 103},
{areaCode: "019-006", areaName: "019-006", status: "В-СТАДИИ-ПРОВЕРКИ", amount: 2},
{areaCode: "019-006", areaName: "019-006", status: "ПРОВЕРЕН", amount: 89},
{areaCode: "019-006", areaName: "019-006", status: "НЕ-ПРОВЕРЯЛСЯ", amount: 89}
]


Из него нужно получить такой массив

[
{areaCode: "019-001", areaName: "019-001", status1: "НЕ-ПРОВЕРЯЛСЯ", amount: 8, status2: "ПРОВЕРЕН", amount: 103},
{areaCode: "019-006", areaName: "019-006", status1: "В-СТАДИИ-ПРОВЕРКИ", amount: 2,  status2: "ПРОВЕРЕН", amount: 89, status3: "НЕ-ПРОВЕРЯЛСЯ", amount: 89}
]
Ответ: tai,
Вот пример алгоритма формирования:
var arr = [
                    { areaCode: "019-001", areaName: "019-001", status: "НЕ-ПРОВЕРЯЛСЯ", amount: 8 },
                    { areaCode: "019-001", areaName: "019-001", status: "ПРОВЕРЕН", amount: 103 },
                    { areaCode: "019-006", areaName: "019-006", status: "В-СТАДИИ-ПРОВЕРКИ", amount: 2 },
                    { areaCode: "019-006", areaName: "019-006", status: "ПРОВЕРЕН", amount: 89 },
                    { areaCode: "019-006", areaName: "019-006", status: "НЕ-ПРОВЕРЯЛСЯ", amount: 89 }
                  ];

       var i = 0, j = 0, k = 0, arrnew = [];
       while (i < arr.length) {
           if (!arrnew[j]) {
               k = 0;
               arrnew[j] = { areaCode: arr[i].areaCode,
                   areaName: arr[i].areaName,
                   statcond: { status: arr[i].status,
                               amount: arr[i].amount
                   }
               };
          }
          else {
              if (arrnew[j].areaCode == arr[i].areaCode) {
                 arrnew[j].statcond[k] = { status: arr[i].status,
                                           amount: arr[i].amount };
                 k++;
                 i++;
              }
              else {
                  j++;
              }    
          }
       }
    alert(arrnew[1].statcond[1].status + ' ' + arrnew[1].statcond[1].amount);

А ваш алгоритм - не знаю, смотреть надо...
Вопрос: Не могу сформулировать jQuery .live() для динамического DOM элемента

Есть селектбокс, дизайн которого генериться jQuery плагином при загрузке документа (при doсReady событии). Но он, естественно, не срабатывает для динамических элементов, созданных через append().

Я пробовал юзать и live() и delegate() но ничего не выходит, live() тут врядли как-то поможет а delegate() не знает такого события, которое здесь нужно использовать. Помогите плиз
Ответ: jQuery работает с элементами, которые были на странице на момент инициализации кода.

Если добавляются новые элементы - при помощи ajax'а или функций типа append() - то события не затрагивают их.

Как же работать с новыми созданными элементами DOM?

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

Если кратко, то смысл делегирования в том, что обработчики "навешиваются" не на отсутствующие в dom элементы, а на существующий родительский объект.

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

Вопрос: GetList вытаскивает только 10 элементов

Всем привет. Собсно столкнулся с сабжем. Обычный getlist:

PHP
1
2
3
4
5
6
$deplist = CIBlockElement::GetList(array('propertysort_NAME_PROPERTY' => 'ASC'), array('IBLOCK_ID' => 38, 'GLOBAL_ACTIVE' => 'Y', 'PROPERTY_NUMBER_VALUE' => $a), false, array(), $arSelect);
while ($sper = $deplist->GetNextElement()){
                                $arrFields = $sper->GetFields();
                                $arrProps = $sper->GetProperties(); 
}
// $a - получает значение свойства выше по коду.
Выводит только 10 элементов!! Причем
PHP
1
echo count($arrFields);
Дает количество всех элементов (их 12 пока что). В чем причина может быть?
Погуглил - нашел только вот это, но мне не помогло.
Спасайте!!
Ответ: voral, да, только из 38 инфоблока нужны элементы.
4 параметр помог. Спасибо!!
Вопрос: Непонятное выталкиванием элемента

Почему происходит выталкивание второго элемента когда общая ширина обеих элементов составляет 100%?
HTML5
1
2
3
4
5
6
 <body>
    <div class="media">
    <p></p>
    <div class="phot"></div>
    </div>
 </body>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
*{
    box-sizing:border-box;
    margin:0;
    padding:0;
}
.media{
    width:937px;
    height:1000px;
    border: 4px solid #FBFBFB;
}
.media p{
    width:45%;
    height:100%;
    background:black;
    display:inline-block;
}
.phot{
    width:55%;
    height:100%;
background:red; 
display:inline-block;
}
Ответ:
Сообщение от Aqua77
Почему происходит выталкивание второго элемента когда общая ширина обеих элементов составляет 100%?
Потому-что оба элемента строчно-блочные, а между строчно-блочными элементами образуются отступы, как между обычными текстовыми символами... Обнуление стилей и указание свойства box-sizing:border-box не поможет... Если задать родительскому элементу(.media) font-size:0 влезут оба элемента...
Вопрос: Элементы массива задавать через Math.random () ;

Задано одномерный массив целых чисел, определить, есть ли в нем элемент со значением К. Использовать цикл for.
Элементы массива задавать через Math.random () ;. Длина массива - 10 элементов. До значений элементов форм обращаться через document.getElementById ( "# demo"). Value. Результат выводить на страницу через document.getElementById ( "demo"). InnerHTML.
Ответ: указаний "элементы массива задавать через Math.random ()" и "Длина массива - 10 элементов" недостаточно для формирования "одномерного массива целых чисел"

множество целых чисел бесконечно, поэтому необходимо знать диапазон значений этих самых целых чисел в виде "от N до M"

метод Math.random () может вытащить случайный бочонок из мешка при игре в лото, но надо же знать -- какие именно бочонки в том мешке имеются

также желательно знать -- "могут ли значения элементов массива повторяться?"

обратитесь к преподавателю для уточнения задания и затем приходите, поможем.
Вопрос: Не срабатывает .click() для новых добавленных элементов

Здраствуйте уважаемые. Начинаю работать с ajax. При нажатии на кнопку удалить (кнопка - картинка 25х25), с класом class="g_del". Вызываеца событие
Код Javascript
1
2
3
4
5
6
$('.g_del').click(finction(){
 $.ajax({ ... 
     success : function(){
     });
 // А здесь код который удаляет елемент возле каково была кнопка удаления.
});
Если нажать на кнопку "Добавить", выполняеца соответственный ajax запрос и при удачном запросе (из php если возвращяет true)
Код Javascript
1
2
3
$('#g_add').click(function(){
   $('#sortable').append(/* код и в картинка (удаления) с класом class="g_del"*/ );
});
И теперь после тово как новый елемент добавлен. При нажатии на новую картинку с класом class="g_del" не вызываеца событие $('.g_del').click(finction(){ . Я немогу понять почему. Делал таким же образом через ajax, только с php возвращяло все содержымое (<body> .... </body>) с заменяло текущее содержжымое не перезагружая страницу. Но и в етом случае на кнопке удаления не срабатывает событие клик. Помогите пожалуйста. Можеш есть какаето фигня почему так происходит. Если что-то могу дать больше инфомрацыи, тоисть самово кода
Ответ: Если добавляются новые элементы - при помощи ajax'а или функций типа append() - то события не затрагивают их.

Как же работать с новыми созданными элементами DOM?

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

Если кратко, то смысл делегирования в том, что обработчики "навешиваются" не на отсутствующие в dom элементы, а на существующий родительский объект.

Таким образом, при срабатывании соответствующего события (в моем примере это будет body), будет вызван данный обработчик для всех элементов, соответствующих селектору, даже если этих элементов не было во время объявлении обработчика (например при загрузке страницы).

Вопрос: Не определяет элемент lastChild.

Уважаемые форумчане!
Просьба помочь со скриптом.
Краткая информация о скрипте:
1. Скрипт генерит 5 элементов img и добавляет их в один из двух пустых div.
2. Скрипт копирует все элементы из одного div в другой, при этом удаляя один элемент img. Получаем 5 и 4 элемента img в двух div.
До этого момента все гладко.

Далее скрипт должен при нажатии на lastChild левого div, которым является один из img удалять всех child из обоих div и генерить уже 10 и 9 соответственно (по схеме выше).

Или, при нажатии на любой другой child в div кроме последнего, выдавать сообщение.

Вот проблема заключается в том, что не получается прописать событие onclick на последнем child'e одного из div, чтобы произошел вызов функции.

Вложил весь скрипт.

Заранее благодарю за помощь.

Это проблемный участок скрипта:
theLeftSide.lastChild.onclick= function nextLevel(){
// onclick.stopPropagation();
numberOfFaces += 5;
//delete all childNodes
while(theBody.firstChild){theBody.removeChild(theB ody.firstChild);
generateFaces();
}
}
Ответ: Попробуйте посмотреть в эту сторону: при создании динамически новых элементов, onclick не сработает, сделайте типо такого
Вопрос: Блок между элементами бутстрап сетки

Есть ячейки бутстрап сетки, в зависимости от разрешения экрана в одну строку помещается разное кол-во элементов, нужно чтобы при клики на определенный элемент между рядами появлялся нужный мне блок. Как это лучше реализовать? Если просто добавить блоки сразу за элементом, то все элементы идущие после уедут на следующую строку. Вот что я хочу:
(IMG:)
Ответ: тут только бутстрап не поможет. надо с помощью js высчитывать сколько элементов сейчас в ширину влазит. и рассчитвать между какими рядами вставить блок, в зависимости от нажатого элемента.
по другом никак.