1

我正在用 javascript 制作一个简单的购物车类型的东西,基本上我只希望允许添加每个项目中的一个。我有以下代码,我的计划是拆分 myID,然后循环查看该数字是否已经存在,但它在拆分时会失败,我不确定这是否是最好的方法。

这是我所拥有的,任何帮助将不胜感激。谢谢

var myIDs;

jQuery(".selectItem").click(function () {

    if (myIDs) {
        var split = myIDs.split(",");
        alert(split[0]);
    }
    addToCart(jQuery(this).data('id'));
});

function addToCart(id) {

    jQuery.ajax({
        type: "GET",
        url: "feeds/prodxml.aspx?id=" + id,
        dataType: "xml",
        success: function (xml) {
            jQuery(xml).find('Product').each(function () {
                var sTitle = jQuery(this).find('Name').text();
                var sPublisher = jQuery(this).find('Description').text();
                jQuery("<li></li>").html(sTitle + ", " + sPublisher).appendTo("#addedItem ul");
                jQuery('.hide-on-click').remove();
                addItem(id);
            });
        },
        error: function () {
            alert("An error occurred while processing XML file.");
        }
    });


}

function addItem(itemID) {
    if (!myIDs) {
        myIDs = itemID;
    } else {
    myIDs = myIDs + "," + itemID;
    }
    alert(myIDs);
    }
4

2 回答 2

0

您可以将 myIDs 设为数组而不是字符串。

var myIDs = [];

然后您可以将检查修改为

jQuery(".selectItem").click(function () {
if(jQuery.inArray(jQuery(this).data('id'), myIDs){
    var split = myIDs.split(",");
    alert(split[0]);
}
addToCart(jQuery(this).data('id'));

});

function addItem(itemID) {
  myIds.push(itemID);
}
于 2013-05-07T14:34:12.717 回答
0

jQuery 的inArray函数可以为您做到这一点。

请参阅:Jquery,检查数组中是否存在值

于 2013-05-07T14:34:17.527 回答