문제 설명 : DOM 주위에 입력 요소를 배치했습니다.
<input type="checkbox" data-filter="markets" data-cid="4" name="checkbox">
<input type="checkbox" data-filter="categories" data-cid="30" name="checkbox">
확인란 중 하나를 선택하면 다음과 같은 JSON 개체가 표시됩니다.
{"categories":["4,5"],"markets":["30,31,32"]}
그러나 나는 다음과 같은 물건을 얻고있다.
{"categories":["30,31,32,4,5"],"markets":["30,31,32,4,5"]}
여기서 30,31,32 는 시장이지만 4,5 는 카테고리입니다. 누군가가 나에게 말할 수 있을지도 모른다.
$(document).on('change',"input[name=checkbox]", function() {
page = 0;
var $this = $(this);
if ($this.prop('checked')) {
$this.addClass("checked");
} else {
$this.removeClass("checked");
}
filter();
});
var filter = function() {
var myObject = new Object();
$('.checked').each(function(n) {
var objname = $(this).data('filter');
arr = $('.checked').map(function() {
return $(this).data('cid');
}).get().join(",");
if(arr.length > 0) {
myObject[ objname ] = [ arr ];
}
});
console.log(JSON.stringify(myObject));
return JSON.stringify(myObject);
}
filter();
시험
var filter = function () {
var myObject = {};
$('.checked').each(function (n) {
var objname = $(this).data('filter');
var array = myObject[objname] = myObject[objname] || [];
array.push($(this).data('cid'))
});
console.log(JSON.stringify(myObject));
return JSON.stringify(myObject);
}
데모 : Fiddle
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다