2016-08-16 6 views
-1

Я хочу удалить определенное значение из массива.
Например:Устранить конкретное значение в массиве Javascript динамически

var categories = ["Lenovo","Large","100"]; 

Я показал его как этот

Website screenshot

HTML код:

<div style="margin-bottom:5px;"> 
    <select class="form-control product-type" id="brand" > 
    <option value="">Select a Brand</option> 
    <option value="Lenovo">Lenovo</option> 
    <option value="Acer">Acer</option> 
    </select> 
</div> 

<div style="margin-bottom:5px;"> 
    <select class="form-control product-type" id="screen_size" style="margin-top:0px;"> 
    <option value="">Select a Screen Size</option> 
    <option value="Small">Small</option> 
    <option value="Large">Large</option> 
    </select> 
</div> 

<div style="margin-bottom:5px;"> 
    <select class="form-control product-type" id="cpu"> 
    <option value="">Select a CPU</option> 
    <option value="Intel">Intel</option> 
    <option value="Amd">Amd</option> 
    </select> 
</div> 

<div style="margin-bottom:5px;"> 
    <select class="form-control product-type" id="memory"> 
    <option value="">Select a Memory</option> 
    <option value="500mb">500mb</option> 
    <option value="1tb">1tb</option> 
    </select> 
</div> 
<div style="margin-bottom:5px;"> 
    <select class="form-control product-type" id="price"> 
    <option value="">Filter by Price</option> 
    <option value="10000">10000</option> 
    <option value="20000">20000</option> 
    </select> 
</div> 

Как я могу добиться этого? Я пробовал это много раз, но я потерпел неудачу, потому что я не могу получить значение. Вы можете проверить мой код:

jQuery("#filter").val() 
jQuery(function() { 
    jQuery("#brand,#screen_size,#cpu,#memory,#price").change(function() { 

    var brand = jQuery("#brand").val(); 
    var screen_size = jQuery("#screen_size").val(); 
    var cpu = jQuery("#cpu").val(); 
    var memory = jQuery("#memory").val(); 
    var price = jQuery("#price").val(); 
    var categories = []; 
    if (brand) { 
     categories.push(brand); 
    } 
    if (screen_size) { 
     categories.push(screen_size); 
    } 
    if (cpu) { 
     categories.push(cpu); 
    } 
    if (memory) { 
     categories.push(memory); 
    } 
    if (price) { 
     categories.push(price); 
    } 
    length = categories.length; 
    categories2 = categories.toString(); 

    var categories3 = ""; 
    for (var i = 0; i < length; i++) { 
     var cat_id = "cat" + i; 
     categories3 += "<div class='filter_style'>" + categories[i] + "<a href='" + cat_id + "' id='" + cat_id + "' onclick='removeCat(event)'><span style='margin-left:15px;color:gray;' >x</span></a></div>"; 
     jQuery("#filter").html(categories3); 

    }    
    }); 
}); 

function removeCat(evt) { 
    evt.preventDefault(); 
    var catid = jQuery(this).attr('href'); 
    var cat = jQuery(this).data("id"); 
    //jQuery.grep(); maybe or indexOf first then slice() but I do not get the value 
    alert(catid); 
} 
+0

Пожалуйста, разместите свой html-код как обычно l для лучшего понимания –

+0

Возможный дубликат [Как удалить определенный элемент из массива в JavaScript?] (http://stackoverflow.com/questions/5767325/how-to-remove-a-particular-element-from-an -array-in-javascript) – aldrin27

ответ

1

Вы можете просто удалить элемент из массива с помощью ниже метода

categories .splice($.inArray(removeItem, categories), 1);//removeItem is name of item which you want to remove from array 
0

Если вы хотите удалить, например, "Lenovo" от:

var categories = ["Lenovo","Large","100"]; 

do:

categories.splice(0) 
+0

его динамически. Я хочу поместить этот метод в кнопку x. Пожалуйста, смотрите изображение –

+0

'var dynamic = categories.indexOf (« Lenovo »);' Это даст вам 0. –

+0

Как я могу заставить его запускать, если я нажму кнопку x? –

Смежные вопросы