回答編集履歴

3

ちょうせい

2019/11/21 05:50

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -62,6 +62,30 @@
62
62
 
63
63
  }
64
64
 
65
+ $.fn.dataDel=function(x,y){
66
+
67
+ if(typeof y== "undefined"){
68
+
69
+ $(this).removeData(x);
70
+
71
+ }
72
+
73
+ if(typeof $(this).data(x)== "string" && $(this).data(x)==y){
74
+
75
+ $(this).removeData(x);
76
+
77
+ }
78
+
79
+ if($(this).data(x) instanceof Array){
80
+
81
+ $(this).data(x,$(this).data(x).filter(z=>z!==y));
82
+
83
+ if($(this).data(x).length==0) $(this).removeData(x);
84
+
85
+ }
86
+
87
+ }
88
+
65
89
  $(function(){
66
90
 
67
91
  console.log($('.list.col').data('filter'));
@@ -74,11 +98,11 @@
74
98
 
75
99
  console.log($('.list.col').data('filter'));
76
100
 
77
- for(var i=1;i<5;i++){
101
+ $('.list.col').dataDel('filter','#b-1');
78
102
 
79
- $('.list.col').dataAdd('filter','#c-'+i);
103
+ console.log($('.list.col').data('filter'));
80
104
 
81
- }
105
+ $('.list.col').dataDel('filter','#a-1');
82
106
 
83
107
  console.log($('.list.col').data('filter'));
84
108
 

2

ちょうせい

2019/11/21 05:50

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -74,7 +74,11 @@
74
74
 
75
75
  console.log($('.list.col').data('filter'));
76
76
 
77
+ for(var i=1;i<5;i++){
78
+
77
- $('.list.col').dataAdd('filter','#c-2');
79
+ $('.list.col').dataAdd('filter','#c-'+i);
80
+
81
+ }
78
82
 
79
83
  console.log($('.list.col').data('filter'));
80
84
 

1

調整

2019/11/21 05:34

投稿

yambejp
yambejp

スコア114883

test CHANGED
@@ -35,3 +35,53 @@
35
35
 
36
36
 
37
37
  生のjsでやるならJSON.parse/JSON.strigifyを駆使してください
38
+
39
+
40
+
41
+ # 調整版
42
+
43
+ ```javascript
44
+
45
+ <script>
46
+
47
+ $.fn.dataAdd=function(x,y){
48
+
49
+ if(typeof $(this).data(x)== "undefined"){
50
+
51
+ $(this).data(x,y);
52
+
53
+ }else if(typeof $(this).data(x)== "string"){
54
+
55
+ $(this).data(x,[$(this).data(x),y]);
56
+
57
+ }else{
58
+
59
+ $(this).data(x).push(y);
60
+
61
+ }
62
+
63
+ }
64
+
65
+ $(function(){
66
+
67
+ console.log($('.list.col').data('filter'));
68
+
69
+ $('.list.col').dataAdd('filter','#a-1');
70
+
71
+ console.log($('.list.col').data('filter'));
72
+
73
+ $('.list.col').dataAdd('filter','#b-1');
74
+
75
+ console.log($('.list.col').data('filter'));
76
+
77
+ $('.list.col').dataAdd('filter','#c-2');
78
+
79
+ console.log($('.list.col').data('filter'));
80
+
81
+ });
82
+
83
+ </script>
84
+
85
+ <div class="list col"></div>
86
+
87
+ ```