質問編集履歴
5
漏れ
test
CHANGED
File without changes
|
test
CHANGED
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
|
56
56
|
|
57
|
-
$h
|
57
|
+
$header.appendTo( $main );
|
58
58
|
|
59
59
|
|
60
60
|
|
@@ -72,7 +72,7 @@
|
|
72
72
|
|
73
73
|
|
74
74
|
|
75
|
-
$h
|
75
|
+
$header.remove();
|
76
76
|
|
77
77
|
|
78
78
|
|
@@ -104,6 +104,12 @@
|
|
104
104
|
|
105
105
|
```jQuery
|
106
106
|
|
107
|
+
const $main = $('#main');
|
108
|
+
|
109
|
+
const $header = $('<header><h2>追記</h2></header>');
|
110
|
+
|
111
|
+
|
112
|
+
|
107
113
|
const func = ( $node ) => {
|
108
114
|
|
109
115
|
//中略
|
@@ -122,7 +128,7 @@
|
|
122
128
|
|
123
129
|
|
124
130
|
|
125
|
-
const $h
|
131
|
+
const $h2 = $header.children('h2');
|
126
132
|
|
127
133
|
|
128
134
|
|
@@ -130,7 +136,7 @@
|
|
130
136
|
|
131
137
|
|
132
138
|
|
133
|
-
$h
|
139
|
+
$h2.remove();
|
134
140
|
|
135
141
|
|
136
142
|
|
@@ -138,6 +144,6 @@
|
|
138
144
|
|
139
145
|
|
140
146
|
|
141
|
-
func( $h
|
147
|
+
func( $h2 );
|
142
148
|
|
143
149
|
```
|
4
&&
test
CHANGED
File without changes
|
test
CHANGED
@@ -112,7 +112,7 @@
|
|
112
112
|
|
113
113
|
|
114
114
|
|
115
|
-
if( $closest.length ) {
|
115
|
+
if( $main.find( $node ).length && $main.find( $closest ).length ) {
|
116
116
|
|
117
117
|
$closest.remove(); //エラー
|
118
118
|
|
3
エラーについて
test
CHANGED
File without changes
|
test
CHANGED
@@ -36,11 +36,11 @@
|
|
36
36
|
|
37
37
|
|
38
38
|
|
39
|
-
const $h
|
39
|
+
const $header = $('<header><h1>ハロー、ハッピーワールド!</h1></header>');
|
40
40
|
|
41
41
|
|
42
42
|
|
43
|
-
if( $main.find( $h
|
43
|
+
if( $main.find( $header ).length ) {
|
44
44
|
|
45
45
|
console.log("そんなわけない");
|
46
46
|
|
@@ -58,7 +58,7 @@
|
|
58
58
|
|
59
59
|
|
60
60
|
|
61
|
-
if( $main.find( $h
|
61
|
+
if( $main.find( $header ).length ) {
|
62
62
|
|
63
63
|
console.log("そうだよね");
|
64
64
|
|
@@ -76,7 +76,7 @@
|
|
76
76
|
|
77
77
|
|
78
78
|
|
79
|
-
if( $main.find( $h
|
79
|
+
if( $main.find( $header ).length ) {
|
80
80
|
|
81
81
|
console.log("そんなわけない");
|
82
82
|
|
@@ -89,3 +89,55 @@
|
|
89
89
|
}
|
90
90
|
|
91
91
|
```
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
### 追記
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
関数の引数として、すでに消えたはずの子要素(上記の場合は h1 )を渡し、その関数の中で親要素を削除しようとするとエラーになるようです
|
100
|
+
|
101
|
+
これがどうも回避できずにいます…
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
```jQuery
|
106
|
+
|
107
|
+
const func = ( $node ) => {
|
108
|
+
|
109
|
+
//中略
|
110
|
+
|
111
|
+
const $closest = $node.closest();
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
if( $closest.length ) {
|
116
|
+
|
117
|
+
$closest.remove(); //エラー
|
118
|
+
|
119
|
+
}
|
120
|
+
|
121
|
+
};
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
const $h1 = $header.children('h1');
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
//中略
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
$h1.remove();
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
//中略
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
func( $h1 );
|
142
|
+
|
143
|
+
```
|
2
closest
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
jQueryで要素がDOMノードとして存在しているかを確かめる最良の方法
|
1
|
+
jQueryで特定の一意の要素がDOMノードとして存在しているかを確かめる最良の方法
|
test
CHANGED
@@ -18,7 +18,15 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
+
あるいは逆に
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
> $( 探したい要素 ).closest().length
|
26
|
+
|
27
|
+
|
28
|
+
|
21
|
-
|
29
|
+
のように、探したい要素から見て親があるかどうかを調べたほうがいいとかあったりするのでしょうか?
|
22
30
|
|
23
31
|
|
24
32
|
|
1
[0]やsize()
test
CHANGED
File without changes
|
test
CHANGED
@@ -10,7 +10,15 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
動くことは動くものの若干腑に落ちなさもあり、このやり方しかないのかな?と疑問に
|
13
|
+
動くことは動くものの若干腑に落ちなさもあり、このやり方しかないのかな?と疑問に思っています。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
[0]や.size()など、いくつかやり方はあるようですが…
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
あるいは逆に、探したい要素から見て親があるかどうかを調べたほうがいいとかあったりするのでしょうか?
|
14
22
|
|
15
23
|
|
16
24
|
|