元素不在数组中 javascript & replace array



这些是复选框

<label><input type="checkbox" class="category" name="selector[]" value="114" id="category_id" >Mouse</label>
<label><input type="checkbox" value="89,809,watches"  name="selector[]" class="category" id="category_id" >Watches</label>
<label><input type="checkbox" class="category" name="selector[]" value="809" id="category_id" >Men</label>
<label><input type="checkbox" class="category" name="selector[]" value="89" id="category_id" >Women</label>

这是我为从复选框获取值而编写的函数。

$('.category').click(function() {
    var val = [];
    jQuery(':checkbox:checked').each(function(i){
        val[i] = jQuery(this).val();
    }); 
});

这里,如果有人选择男性(809)或女性(89)而没有点击手表(89809,手表),那么我需要从数组val 中删除相应的值

ie有人选择men,然后选择val=array('809');,但如果有人选择没有手表的人,则其值必须为空。如果有人选择鼠标和人,则val必须是val=数组('114');

我尝试了这个代码进行检查,但不起作用

if((.inArray(val, 89))||(.inArray(val, 809)) && (!(.inArray(val, '89,809,watches')))){
    alert('watch not selected ');
}

以及如何从数组中移除值?

if(($.inArray(89, val)>-1)||($.inArray(809,val)>-1) && (($.inArray('89,809,watches', val)==-1))){
    alert('watch not selected ');
}

很遗憾,你知道该读哪一页手册,但你没有读…

  1. 您需要传递在第一个参数中搜索的值,以及在第二个参数中查找的数组
  2. 它返回索引,如果未找到,则返回-1

这个答案是有效的。但我不确定情况是否正确。

$('.category').click(function() {
    var val = [];
    jQuery(':checkbox:checked').each(function(i){
        selected = jQuery(this).val();  
        if( (selected == '89' || selected == '809') &&  !( $.inArray('89,809,watches', val) != -1 ) )
            return true;
        else
            val.push( selected );
    }).get(); 
    console.log(val);
    $('#arrayVal').text( 'Array String: "' + val.toString() + '"' )
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label><input type="checkbox" class="category" name="selector[]" value="114" id="category_id" >Mouse</label>
<label><input type="checkbox" value="89,809,watches"  name="selector[]" class="category" id="category_id" >Watches</label>
<label><input type="checkbox" class="category" name="selector[]" value="809" id="category_id" >Men</label>
<label><input type="checkbox" class="category" name="selector[]" value="89" id="category_id" >Women</label>
<div id="arrayVal"></div>

最新更新