【问题标题】:Can't get contains method in jQuery无法在jQuery中获取包含方法
【发布时间】:2014-03-28 07:42:58
【问题描述】:

我正在用 MVC 开发一个应用程序。我想查找数组是否包含用户从下拉列表中选择的值。我有一个代码 -

<div class="span10" style="margin-left:0px;">
    <a href="#" id="lnkAddProduct" style="font-size:14px;text-decoration:none;margin-right:10px;margin-left:30px;">Add Product</a>
    <span id="LinkErrorMsg" class="field-validation-error"></span>
</div>

还有我的 jQuery 代码 -

<script type="text/javascript">
$(document).ready(function () {         
    $('#lnkAddProduct').click(function () {
        var rIndex = $("select.clsProductId").length;       
        var ndate =  new Date();    
        var time = ndate.getMilliseconds();
        var IDD = rIndex + time;                           
        $('#ProductList').append("<div  class='span12' style='margin-left:0px' ><div class='span3'><select class='clsProductId '  name='ProductId' id='ddProductList_"+IDD+"' style = 'font-size:12px;width:200px;margin-right:10px;margin-left:20px;' onchange='get("+IDD+")'/> </div><span id='ProductIdValidation field-validation-error'></span><div id='ProductCode_"+IDD+"' class='span1'  style=' margin-left:30px;'></div><div id='Weight_"+IDD+"' class='span1' style=' margin-left:90px;'> </div><input type='text' id='Quantity_"+IDD+"'  name='Quantity' style='width:50px; margin-left:35px;' /> <a href='#' style='font-size:14px;text-decoration:none;font-weight:bold; margin-left:20px' id='lnkRemove_"+IDD+"' class='clsRemove'  onclick='removeElement(" + IDD+");'>X</a></div>");                
        getProductList(IDD);
    });        
});
function get(Index)
{  
    var productCode=$('#ddProductList_' + Index).val();  
    getProductDetails(productCode,Index)
}
function getProductDetails(productCode,Index)
{
    $.ajax({
        url: "/Product/getProductDetails/",
        data: { Id: productCode },             
        dataType: "json",
        success: function (result)
        {                           
            $('#ProductCode_'+Index).text(result.ProductCode);         
            $('#ProductName_'+Index).text(result.ProductName);           
            $('#Weight_'+Index).text(result.Weight);    
        }
    });
    CheckProductReapet();
}  
function CheckProductReapet() {
    var Count = document.getElementsByName("ProductId");
    var arrAptNumbers = new Array();
    for (var i = 0; i < Count.length; i++) {
        var s = Count[i].id;
        var productCode = $(s).val();
        var stringsplit = Count[i].id;
        var s = stringsplit.split("_")
        var Id = s[1];
        var nQuantity = $('#ddProductList_' + Id).val();                
        alert('nQuantity-'+nQuantity);
        if (arrAptNumbers.contains(nQuantity)) {
            $('#ProductIdValidation').text("Product Name should not be reapeted.")
        }
        else {
            arrAptNumbers.push(values[i].value);
            $('#ProductIdValidation').text("");
        }
    }
}     
</script>

在这里,我想检查 arrAptNumbers 是否包含 #ddProductList_ 的值,所以我给出的代码为 -

if (arrAptNumbers.contains(nQuantity)) {
                $('#ProductIdValidation').text("Product Name should not be reapeted.")
            }

但是,对于arrAptNumbers,它不会将方法显示为contains。怎么拿?有什么解决办法吗?

【问题讨论】:

    标签: jquery asp.net-mvc onchange contains


    【解决方案1】:

    您可以使用.indexOf() 进行检查:

    if(arrAptNumbers.indexOf(nQuantity) > -1){
        $('#ProductIdValidation').text("Product Name should not be reapeted.")
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用$.inArray()

      if($.inArray(nQuantity,arrAptNumbers)) > -1)
          //value exists
      };
      

      您可以使用indexOf(),它返回可以在数组中找到给定元素的第一个索引,如果不存在则返回-1。

      if (arrAptNumbers.indexOf(nQuantity) > -1){
          //value exists
      };
      

      注意:IE > 8 支持indexOf()

      【讨论】:

        【解决方案3】:
        if ($.inArray(nQuantity, arrAptNumbers) > -1){
         $('#ProductIdValidation').text("Product Name should not be reapeted.")
        }
        

        如需进一步参考,请参阅以下链接。

        How to find if an array contains a specific string in JavaScript/jQuery?

        【讨论】:

          猜你喜欢
          • 2020-05-02
          • 2011-11-25
          • 1970-01-01
          • 2018-03-27
          • 2012-06-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多