teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

タグを追加しました。

2021/06/08 06:23

投稿

haruka4434
haruka4434

スコア0

title CHANGED
File without changes
body CHANGED
File without changes

2

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

2021/06/08 06:23

投稿

haruka4434
haruka4434

スコア0

title CHANGED
File without changes
body CHANGED
@@ -76,10 +76,14 @@
76
76
  上記のコードに書き換えて実行するとarrがclass指定なので、lengthは取れるのですが、中のテキストコンテンツが取れず、undefinedになり比較することができません。
77
77
  なので実行すると本来は表示されるはずの要素まで、すべてが消えてしまします。
78
78
 
79
- 逆にid指定と、中のテキストコンテンツは取れるのですが、lengthが取れずにundefinedになります。なのでdivタグにclass="node_count"をつけてノードを数えるためのdivを作った以下のコードを実行すると、
79
+ 逆にarrをid指定にすると、中のテキストコンテンツは取れるのですが、lengthが取れずにundefinedになります。なのでdivタグにclass="node_count"をつけてノードを数えるためのdivを作った以下のコードを実行すると、
80
80
 
81
81
  ```JavaScript
82
+ var other_content = document.getElementById("other_content").textContent;
83
+ var arr = document.getElementById("db_val"); //NEW
84
+ var node_count = document.getElementsByClassName("node_count"); //NEW
85
+
82
- for (var i = 0; i < node_count.length; i++) {
86
+ for (var i = 0; i < node_count.length; i++) { //NEW
83
87
  if (arr[i].textContent != other_content) {
84
88
  arr[i].style.display = "none";
85
89
  }

1

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

2021/06/07 23:06

投稿

haruka4434
haruka4434

スコア0

title CHANGED
File without changes
body CHANGED
@@ -20,12 +20,15 @@
20
20
  {% for entry in entries %}
21
21
  <div>
22
22
  <p>hogehoge</p>
23
+ ...
23
24
  </div>
24
25
  <div>
25
26
  <p>hogehoge</p>
27
+ ...
26
28
  </div>
27
29
  <div>
28
30
  <p>hogehoge</p>
31
+ ...
29
32
  </div>
30
33
  {% endfor %}
31
34
  ```
@@ -36,20 +39,52 @@
36
39
  {% for entry in entries %}
37
40
  <div>
38
41
  <p>hogehoge</p>
42
+ ...
39
43
  </div>
40
44
  <div>
41
45
  <p>HUGEHUGE</p>
42
46
  <!-- これは値が異なっているので表示しない。 -->
47
+ ...
43
48
  </div>
44
49
  <div>
45
50
  <p>hogehoge</p>
51
+ ...
46
52
  </div>
47
53
  {% endfor %}
48
54
 
49
55
  <p id="other_content">hogehoge</P> <!-- JSを使ってid指定でテキストコンテンツを埋め込んだ<p>タグと比較する -->
50
56
  ```
51
57
 
58
+ ### 自分で試したこと
59
+ 1.
60
+ askamaのテンプレートシンタックスでif文やmatch文があるのでそれを使って再現しようと思ったのですが、id指定でテキストを埋め込んでいたのでできませんでした。
52
61
 
62
+ 2.
63
+ 比較対象のpタグにclass="db_val"を付与
53
64
 
65
+ ```JavaScript
66
+ var other_content = document.getElementById("other_content").textContent;
67
+ var arr = document.getElementsByClassName("db_val");
68
+
69
+ for (var i = 0; i < arr.length; i++) {
70
+ if (arr[i].textContent != other_content) {
71
+ arr[i].style.display = "none";
72
+ }
73
+ }
74
+ ```
75
+
76
+ 上記のコードに書き換えて実行するとarrがclass指定なので、lengthは取れるのですが、中のテキストコンテンツが取れず、undefinedになり比較することができません。
77
+ なので実行すると本来は表示されるはずの要素まで、すべてが消えてしまします。
78
+
79
+ 逆にid指定だと、中のテキストコンテンツは取れるのですが、lengthが取れずにundefinedになります。なのでdivタグにclass="node_count"をつけてノードを数えるためのdivを作った以下のコードを実行すると、
80
+
81
+ ```JavaScript
82
+ for (var i = 0; i < node_count.length; i++) {
83
+ if (arr[i].textContent != other_content) {
84
+ arr[i].style.display = "none";
85
+ }
86
+ }
87
+ ```
88
+
89
+ 「Uncaught (in promise) TypeError: arr[i] is undefined」
54
- ### 自分で試したこと
90
+ とエラーが出ました
55
- askamaのテンプレートシンタックスでif文やmatch文があるのでそれを使って再現しようと思ったのですが、id指定でテキストを埋め込んでいたのでできませんでした。