Я пытаюсь удалить все элементы массива с помощью array = [];
, когда значение div станет «очищать все», но массив не может очистить. Все, что я делаю здесь, включает выбранное значение флажка в div с именем 'filtervalue'.Невозможно очистить массив с помощью jquery
здесь сценарий
<script type="text/javascript">
$('.filtercheck, #location, #sorting , #filtervalue').on('click', function(e) {
var parameter = [];
var filter = [];
var index = "";
var HTML = "";
var newHTML = "";
$(".filtercheck").each(function() {
if (this.checked) {
filter.push($(this).val())
parameter.push(this.name + "=" + $(this).val());
}
});
if ($("#location").val()) {
parameter.push($("#location").val());
}
if ($('#sorting').val()) {
parameter.push($('#sorting').val());
}
for (var i = 0; i < filter.length; i++) {
HTML = HTML + '<div>' + filter[i] + '</div>';
}
newHTML = HTML + '<div>' + 'Clear All' + '</div>'
$('#filtervalue').html(newHTML).show();
if (filter.length == 0) {
$('#filtervalue').hide();
}
$('div#filtervalue>div').each(function() {
$(this).on("click", function() {
text = ($(this).text());
if (text == 'Clear All') {
filter = [];
console.log(filter.length)
parameter = [];
console.log(parameter.length)
$('#filtervalue').hide();
} else {
filter = jQuery.grep(filter, function(n) {
return n != text;
});
console.log(filter)
console.log(parameter)
checkbox = $(":checkbox[value=" + text + "]")
if (checkbox.prop("checked", true)) {
checkbox.prop("checked", false);
$(this).remove();
}
}
});
});
parameter = parameter.join('&');
$('#loading-image').show();
console.log(filter)
console.log(parameter)
$.ajax({
url: '{{ instance.get_absolute_url }}',
type: 'GET',
data: parameter,
success: function(data) {
var a = $(data).find('.prodthumb');
$('.productgrid').html(a);
$("img.lazy").lazyload();
},
error: function(e) {
console.log(e.message);
},
complete: function() {
$('#loading-image').hide();
}
});
});
</script>
Как я могу удалить все элементы массива? Спасибо
'Как я могу удалить все элементы массива', если массив называется 'array', вы можете просто написать' массив = []; ', или даже' массив = null' (но тогда если вы хотите использовать функции массива в массиве, вам нужно снова создать массив) –
Возможный дубликат [Как я могу удалить массив в JavaScript?] (http://stackoverflow.com/questions/1232040/how-do -i-empty-a-array-in-javascript) –
У меня такое чувство, что это логическая ошибка, поскольку вы, похоже, устанавливаете ее на 'filter = []'. Слишком много кода для меня, чтобы пройти через это рано утром. – epascarello