質問編集履歴

3

タグを追加しました。

2021/06/08 06:23

投稿

haruka4434
haruka4434

スコア0

test CHANGED
File without changes
test CHANGED
File without changes

2

書き忘れがあったので修正しました。

2021/06/08 06:23

投稿

haruka4434
haruka4434

スコア0

test CHANGED
File without changes
test CHANGED
@@ -154,13 +154,21 @@
154
154
 
155
155
 
156
156
 
157
- 逆にid指定と、中のテキストコンテンツは取れるのですが、lengthが取れずにundefinedになります。なのでdivタグにclass="node_count"をつけてノードを数えるためのdivを作った以下のコードを実行すると、
157
+ 逆にarrをid指定にすると、中のテキストコンテンツは取れるのですが、lengthが取れずにundefinedになります。なのでdivタグにclass="node_count"をつけてノードを数えるためのdivを作った以下のコードを実行すると、
158
158
 
159
159
 
160
160
 
161
161
  ```JavaScript
162
162
 
163
+ var other_content = document.getElementById("other_content").textContent;
164
+
165
+ var arr = document.getElementById("db_val"); //NEW
166
+
167
+ var node_count = document.getElementsByClassName("node_count"); //NEW
168
+
169
+
170
+
163
- for (var i = 0; i < node_count.length; i++) {
171
+ for (var i = 0; i < node_count.length; i++) { //NEW
164
172
 
165
173
  if (arr[i].textContent != other_content) {
166
174
 

1

自分で試したことを追加しました。

2021/06/07 23:06

投稿

haruka4434
haruka4434

スコア0

test CHANGED
File without changes
test CHANGED
@@ -42,17 +42,23 @@
42
42
 
43
43
  <p>hogehoge</p>
44
44
 
45
+ ...
46
+
45
47
  </div>
46
48
 
47
49
  <div>
48
50
 
49
51
  <p>hogehoge</p>
50
52
 
53
+ ...
54
+
51
55
  </div>
52
56
 
53
57
  <div>
54
58
 
55
59
  <p>hogehoge</p>
60
+
61
+ ...
56
62
 
57
63
  </div>
58
64
 
@@ -74,6 +80,8 @@
74
80
 
75
81
  <p>hogehoge</p>
76
82
 
83
+ ...
84
+
77
85
  </div>
78
86
 
79
87
  <div>
@@ -82,11 +90,15 @@
82
90
 
83
91
  <!-- これは値が異なっているので表示しない。 -->
84
92
 
93
+ ...
94
+
85
95
  </div>
86
96
 
87
97
  <div>
88
98
 
89
99
  <p>hogehoge</p>
100
+
101
+ ...
90
102
 
91
103
  </div>
92
104
 
@@ -100,10 +112,68 @@
100
112
 
101
113
 
102
114
 
115
+ ### 自分で試したこと
116
+
117
+ 1.
118
+
119
+ askamaのテンプレートシンタックスでif文やmatch文があるのでそれを使って再現しようと思ったのですが、id指定でテキストを埋め込んでいたのでできませんでした。
103
120
 
104
121
 
105
122
 
123
+ 2.
106
124
 
107
- ### 自分で試したこと
125
+ 比較対象のpタグにclass="db_val"を付与
108
126
 
127
+
128
+
129
+ ```JavaScript
130
+
131
+ var other_content = document.getElementById("other_content").textContent;
132
+
133
+ var arr = document.getElementsByClassName("db_val");
134
+
135
+
136
+
137
+ for (var i = 0; i < arr.length; i++) {
138
+
139
+ if (arr[i].textContent != other_content) {
140
+
141
+ arr[i].style.display = "none";
142
+
143
+ }
144
+
145
+ }
146
+
147
+ ```
148
+
149
+
150
+
109
- askamaテンプレートシンタックスif文やmatch文があるのでそれを使って再現しようと思ったのですが、id指定でテキストを埋め込んいたのでできませんでした
151
+ 上記のコードに書き換えて実行するとarrがclass指定なので、lengthは取れるのですが、中のテキストコンテンツが取れず、undefinedになり比較することができません。
152
+
153
+ なので実行すると本来は表示されるはずの要素まで、すべてが消えてしまします。
154
+
155
+
156
+
157
+ 逆にid指定だと、中のテキストコンテンツは取れるのですが、lengthが取れずにundefinedになります。なのでdivタグにclass="node_count"をつけてノードを数えるためのdivを作った以下のコードを実行すると、
158
+
159
+
160
+
161
+ ```JavaScript
162
+
163
+ for (var i = 0; i < node_count.length; i++) {
164
+
165
+ if (arr[i].textContent != other_content) {
166
+
167
+ arr[i].style.display = "none";
168
+
169
+ }
170
+
171
+ }
172
+
173
+ ```
174
+
175
+
176
+
177
+ 「Uncaught (in promise) TypeError: arr[i] is undefined」
178
+
179
+ とエラーが出ました。