Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Выбрать из строки в таблице определённые колонки (https://javascript.ru/forum/jquery/63109-vybrat-iz-stroki-v-tablice-opredeljonnye-kolonki.html)

Alexspi 18.05.2016 13:29

Выбрать из строки в таблице определённые колонки
 
использую скрипт js.cookie.js
данные выводятся таблицей
<table class="table table-bordered table-striped table-condensed flip-content" >
                            <thead>
                            <tr>

                                <th>Категория</th>
                                <th>Vin</th>
                                <th>Аналог</th>
                                <th>Название</th>
                                <th>Цена</th>
                                <th>Количество</th>
                                <th>Статус</th>
                                <th>Actions</th>
                            </tr>
                            </thead>
                            <tbody>
                            @foreach ($catalogs as $catalog)
                                <tr id="{{$catalog->id}}">
                                    <td>{!! $catalog->category->name !!}</td>
                                    <td><span class="vin">{!! $catalog->vin !!}</span></td>
                                    <td >{!! $catalog->analog_vin !!}</td>
                                    <td><span class="name">{!! $catalog->title !!}</span></td>
                                    <td><span class="price">{!! $catalog->price !!}</span></td>
                                    <td>{!! $catalog->number !!}</td>
                                    <td>{!! $catalog->status !!}</td>
                                    <td>
                                        <a href="#" class="btn btn-primary buy-btn" id="{{$catalog->id}}" role="button">Купить</a>
                                    </td>
                                </tr>
                            @endforeach

                            </tbody>


необходимо что бы при нажатии купить , выбирались значения name, vin ,price, id
в js прописал
$('.buy-btn').click(function () {

        Cookies.set('basket', JSON.stringify(order), {path: ''});
        catalog_id = parseInt($(this).attr('id')); //получаем id товара

        price = parseInt($(this).parent(catalog_id).find('.price').html()); //получаем цену товара и преобразуем значение в число parseInt
        vin = $(this).parent(catalog_id).children('.vin').html(); //получаем номер
        title = $(this).parent(catalog_id).children('.name').html(); //название товара


//теперь нужно узнать есть ли в куках уже такой товар
        order = Cookies.get('basket'); //получаем куки с именем basket
        !order ? order = [] : order = JSON.parse(order);
        if (order.length == 0) {
            order.push({'catalog_id': catalog_id, 'price': price,  'vin': vin, 'title': title,'amount': 1});//добавляем объект к пустому массиву
        }
        else {
            flag = false; //флаг, который указывает, что такого товара в корзине нет
            for (var i = 0; i < order.length; i++) //перебираем массив в поисках наличия товара в корзине
            {
                if (order[i].catalog_id == catalog_id) {
                    order[i].amount = order[i].amount + 1; //если товар уже в корзине, то добавляем +1 к количеству (amount)
                    flag = true; //поднимаем флаг, что такой товар есть и с ним делать ничего не нужно
                }

            }

            if (!flag) //если флаг опущен, значит товара в корзине нет и его надо добавить.
            {
                order.push({'catalog_id': catalog_id, 'price': price,'vin': vin, 'title': title,'amount': 1,}); //добавляем к существующему массиву новый объект
            }
        }
        Cookies.set('basket', JSON.stringify(order), {path: ''}); // переделываем массив с объектами в строку и сохраняем в куки
        count_order(); //запускаем функция для отображения количества заказов, текст функции напишу ниже.
        // console.log($.cookie('basket', 'test'));
    });

но он выбирает только catalog_id, подскажите как правильно записать выборку?

Dilettante_Pro 23.05.2016 17:25

Alexspi,
Прежде всего - нельзя на разные элементы назначать одинаковые id


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