Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 1
Регистрация: 26.03.2013
Сообщений: 27

Поиск элемента в массиве

22.01.2018, 14:03. Показов 836. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, уважаемые друзья.

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

Обращаюсь за помощью к вам.

Создаем массив путем обхода строк таблицы, которые создаются динамически (append)
Для выяснения, какие товары уже добавлены, чтобы не добавить один и тот же товар дважды используем $.inArray(elem, ids), но сколько бы раз не добавлялся бы один и тот же элемент, $.inArray(elem, ids) возвращает -1, в чем может быть проблема?

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<table class="table table-striped">
    <thead>
            <tr>
                <th width="3%"><input id="check_all" type="checkbox"></th>
        <th width="3%"></th>
                <th width="50%">Наименование</th>
                <th width="10%">Артикул</th>
        <th width="7%">Кол-во</th>
        <th width="12%">Цена</th>
        <th width="10%">Сумма</th>
                <th width="5%">Действие</th>
            </tr>
    </thead>
    <tbody id="sostav" class="regs" data-count="1">
        <tr class="tovar" id="pos_4338" data-idoborud="4338">
                   <td><input class="checkbox" type="checkbox"></td>
                   <td class="cell">1</td><td class="cell"> ST - 555</td>
                   <td class="cell">555</td>
                   <td><input id="kol0" name="kol[4338]" value="1" type="text"></td>
                   <td><input id="price0" name="zena[4338]" value="3790" type="text"></td>
                   <td class="cell"><div id="summ0">3790</div></td>
                   <td><a data-del="4338" href="#" class="del_incoming">удалить</a></td>
            </tr>
       </tbody>
</table>

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<script>
$("#artikul").autocomplete({
    source: "/result.php",
    minLength: 3,
    select: function( event, ui )
    {
    var ids     = [];
 
    $('.tovar').each(function(){
    ids.push($(this).data('idoborud'));
    });
 
                
    if ($.inArray(elem, ids) == -1)
    {
    console.log("не найден");
    } 
    else 
    {
    console.log("найден");
    }
}
});
</script>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.01.2018, 14:03
Ответы с готовыми решениями:

Поиск элемента в массиве
Всем привет! Подскажите как из массива элементов выловить искомый элемент? На страницу выгружается слайдер с произвольно выбранным...

Поиск элемента в массиве
Есть массив. var arr3 = new Array(4); // массив от сервера arr3=1; arr3=3; есть блоки див &lt;div...

Функции: поиск элемента в неопределенном массиве
Здравствуйте,кого не затруднит, подскажите, пожалуйста, порядок работы по данному заданию....А то я наваяла ...и сама не понимаю и ерунда...

5
0 / 0 / 0
Регистрация: 30.09.2015
Сообщений: 27
23.01.2018, 18:26
Может найдутся желающие помочь? С меня на пиво
0
707 / 309 / 191
Регистрация: 05.03.2015
Сообщений: 822
24.01.2018, 12:08
Если б вы показали код вставки нового ряда, было бы проще) В любом случае, выглядеть это должно как-то так:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var newRow = $(`<tr class="tovar" id="pos_4338" data-idoborud="4338">
                   <td><input class="checkbox" type="checkbox"></td>
                   <td class="cell">1</td><td class="cell"> ST - 555</td>
                   <td class="cell">555</td>
                   <td><input id="kol0" name="kol[4338]" value="1" type="text"></td>
                   <td><input id="price0" name="zena[4338]" value="3790" type="text"></td>
                   <td class="cell"><div id="summ0">3790</div></td>
                   <td><a data-del="4338" href="#" class="del_incoming">удалить</a></td>
            </tr>`);
 
var newRowID = newRow.data('idoborud');
    
var ids = [];
 
$('.tovar').each(function(){
  ids.push($(this).data('idoborud'));
});
               
    if (ids.indexOf(newRowID)== -1){
      console.log("не найден");
    } 
    else {
      console.log("найден");
    }
1
0 / 0 / 0
Регистрация: 30.09.2015
Сообщений: 27
25.01.2018, 14:54
msheal, спасибо большое. Не догадался использовать indexOf
Скиньте в личку номер карты
0
707 / 309 / 191
Регистрация: 05.03.2015
Сообщений: 822
25.01.2018, 15:23
kak-to-tak, за такую крошечную подсказку пиво не положено)
0
0 / 0 / 0
Регистрация: 30.09.2015
Сообщений: 27
25.01.2018, 15:28
msheal, положено. Хотя бы только потому, что вы потратили свое время
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.01.2018, 15:28
Помогаю со студенческими работами здесь

Выполните поиск элемента в массиве. Для поиска элемента используйте рекурсивную функцию
Выполните поиск элемента в массиве. Для поиска элемента используйте рекурсивную функцию. В случае, если элемент не найден, выдавать...

Поиск заданного элемента в упорядоченном массиве(бинарный поиск)
Заполнить одномерный массив из n элементов по формуле приведенной в картинке. Размерность массива задать в виде именованной константы....

Поиск заданного элемента в упорядоченном массиве (бинарный поиск)
Заполнить одномерный массив из n элементов согласно таблицы. Размерность массива задать в виде именованной константы. Вывести массив на...

Поиск элемента в массиве
Здравствуйте! Помогите доделать программу, нужно чтобы программа в пункте 2 (L==2)искала в массиве определенную константу (любое значение...

Поиск элемента в массиве
Как написать рекурсивную функцию для поиска элемента в массиве?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru