当div值变为“全部清除”时,我尝试使用array = [];
删除数组的所有元素。但阵列无法清除。
我在这里所做的就是在div中包含所选的复选框值' filtervalue'。
这是脚本
<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>
如何删除数组的所有元素? 谢谢
答案 0 :(得分:0)
请查看以下代码。只需将您的变量声明移到顶部,如下所示。
var parameter = [];
var filter = [];
var index = "";
var HTML = "";
var newHTML = "";
$('.filtercheck, #location, #sorting , #filtervalue').on('click', function(e) {
$(".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();
}
});
});