如何检查 Jquery 中的重复项

How to check the duplication in Jquery

嗨,我需要 Jquery 方面的帮助。实际上我使用 Jquery 创建了 table 并且我不想插入那些已经插入的值。

我在那个框中有一个下拉框,我有一些 ProductName 和两个文本框,我在其中输入数量和价格。

当我单击“添加到列表”按钮时,该值被插入 table。

现在,如果我再次以不同的价格和数量再次插入相同的商品,它将被输入。

我希望当我单击“添加到列表”按钮时,我会收到一条警告消息“项目已插入”。我为此尝试了很多,但我都失败了。

让我与您分享我的代码。请帮助我。

$("#addToList").click(function (e) {
    debugger;
    e.preventDefault();

    if ($.trim($("#StockID").val()) == "" || $.trim($("#Quantity").val()) == "" || $.trim($("#Price").val()) == "")
        return;
    var orderid

    var productName = $("#StockID option:selected").text();
    var pid = $("#StockID option:selected").val();
    let price = $("#Price").val();
    let quantity = $("#Quantity").val();

    var tmp1 = {};
    tmp1.productName = $("#StockID option:selected").text();
    tmp1.pid = $("#StockID option:selected").val();
    tmp1.price = $("#Price").val();
    tmp1.quantity = $("#Quantity").val();
    tmp1 = {};

    if (tmp1[productName]) {
        alert('Item is already added !');
    }

    else {
        let detailsTableBody = $("#detailsTable tbody");
        var productItem = `<tr>
                            <td pid=${pid}>
                                ${productName}
                            </td>
                            <td><span data-line_qty="${quantity}" data-itemId="0" href="#" class="qtyItem" >${quantity}</span></td>

                            <td>${price}</td>
                            <td>${(parseFloat(price) * parseInt(quantity))}</td>
                           <td><a data-line_total="${(parseFloat(price) * parseInt(quantity, 10))}" data-itemId="0" href="#" class="deleteItem">Remove</a></td>
                        </tr>`;

        detailsTableBody.append(productItem);
        calc_total();
        clearItem();

    }
});
$("#addToList").click(function (e) {
    debugger;
    e.preventDefault();

    if ($.trim($("#StockID").val()) == "" || $.trim($("#Quantity").val()) == "" || $.trim($("#Price").val()) == "")
        return;
    var orderid

    var productName = $("#StockID option:selected").text();
    var pid = $("#StockID option:selected").val();
    let price = $("#Price").val();
    let quantity = $("#Quantity").val();

   
    var isAdded = false;
    $("#detailsTable tr").each(function(e) {
        if ($(this).find("> td:first-child").attr('data-pid') == pid) {
            isAdded  = true;
            return false;
        }
    });

    if (isAdded) {
        alert('Item is already added !');
    }

    else {
        let detailsTableBody = $("#detailsTable tbody");
        var productItem = `<tr>
                            <td data-pid="${pid}">
                                ${productName}
                            </td>
                            <td><span data-line_qty="${quantity}" data-itemId="0" href="#" class="qtyItem" >${quantity}</span></td>

                            <td>${price}</td>
                            <td>${(parseFloat(price) * parseInt(quantity))}</td>
                           <td><a data-line_total="${(parseFloat(price) * parseInt(quantity, 10))}" data-itemId="0" href="#" class="deleteItem">Remove</a></td>
                        </tr>`;

        detailsTableBody.append(productItem);
        calc_total();
        clearItem();

    }
});