Jquery appply только для первого полученного элемента

код отображает данные базы данных, и я хочу скрыть «minusbtn» для количества = 1 и показать тег привязки, и когда он снова увеличится, оба будут отображаться. Jquery работает только с первым полученным элементом базы данных, поэтому подскажите, пожалуйста, что изменится в jquery, чтобы он работал для всех элементов, извлеченных из базы данных.

<?php        
    //Get all these items
    $query = mysql_query("select * from products_added where `username` = '".mysql_real_escape_string($_SESSION["REMOTE_ADDR"])."'");
    ?>
    <?php
    //Fetch all added items and display to the screen for the specified user
    while ($row = mysql_fetch_assoc($query))
    {
        $item_id = $row["id"];
        $item_name = $row["item_added"];
        $price = $row["price"];
        $quantity = $row["quantity"];
        $amount = $row["amount"];
        $date = $row["date"];
        ?>
        <div id="items_cover<?php echo $item_id;?>">
            <dl class="row order-item-total"  >
                <dt class="col-sm-2 text-weight-light text-right"><?php echo $item_name; ?></dt>
                <dd class="col-sm-8 tempptr">
                    <input type='button' value='-' class='qtyminus' id="minusbtn" field='quantity' data-id="<?php echo $row["id"]; ?>" data-value="<?php echo $row['price'];?>"/>
                    <input type='text' name='quantity' id="qty" value="<?php echo $quantity ;?>" class='qty' data-value="<?php echo $quantity ;?>"/>
                    <input type='button' value='+' class='qtyplus' id="plusbtn"  field='quantity' data-id="<?php echo $row["id"]; ?>" data-value="<?php echo $row['price'];?>"/> X <?php echo $row['price'];?>
                    <input type="hidden" value="<?php echo $amount; ?>" id="amount1">
                </dd>
                <dd class="col-sm-2 text-spl-color text-right totalamt" id="totalamt">Rs.<?php echo $amount; ?></dd>
                <dd class="col-sm-1">
                    <a href="javascript:void(0);" style="width:10px; height:10px; padding:3px;padding-left:8px;padding-right:8px; text-decoration:none;" id="vpb_cart_buttons" title="Remove this item" onclick="vpb_remove_this_item('<?php echo $item_id; ?>');">X</a>
                </dd>
            </dl>
        </div>
<?php } ?>

jquery, который применяется только для первого div, только пожалуйста, предложите решение

$(document).ready(function(){
    var qty=$('.qty').attr('data-value');
    if(qty==1){
        $("#vpb_cart_buttons").hide();
    }else{
       $("#vpb_cart_buttons").hide();
    }
});
1
0
14
1

Ответы 1

Это связано с тем, что вы используете одинаковые идентификаторы HTML-элементов в цикле while. Это вызывает повторяющиеся идентификаторы, тогда как согласно правилу идентификатор должен быть уникальным на странице. Поэтому JQuery выбирает только первый совпавший идентификатор. Вместо этого используйте для этих целей классы.

Другие вопросы по теме