无法使用 jquery 清除数组
Unable to clear the array using jquery
当div 值变为"全部清除"但数组无法清除时,我正在尝试使用 array = [];
删除数组的所有元素。我在这里所做的只是在名为"filtervalue"的div 中包含选定的复选框值。
这是脚本
<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>
如何删除数组的所有元素?谢谢
请检查以下代码。 只需将变量声明移到顶部,如下所示。
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();
}
});
});
相关文章:
- Vanilla JS通过引用移除数组元素
- 使用jQuery计算数组中的对象以更改进度条
- Jquery 读取编号组中选择下拉列表的数组
- Jquery.each数组推送不起作用
- 动态创建一个javascript/jquery多级数组
- jQuery Ajax数组序列化错误
- 如何从javascript或jquery的多维数组中删除数组
- 用于清除数组/字符串中的零的递归函数
- JQuery 从数组数组中删除数组
- 设置排序属性时无法清除数组控制器
- 无法使用 jquery 清除数组
- jquery排除数组元素
- 如何清除数组中字符串中的字符
- 在jQuery中,如何在每个循环中动态移除数组元素
- AngularJS在POST后不清除数组
- 用javascript清除数组和文本框
- 当复选框选中/未选中时填充/清除数组
- 使用jquery移除数组
- 使用jquery的内部数组第一项从数组中移除数组
- 如何在javascript中清除数组