質問編集履歴
3
タグを追加しました。
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|
2
書き忘れがあったので修正しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -76,10 +76,14 @@
|
|
76
76
|
上記のコードに書き換えて実行するとarrがclass指定なので、lengthは取れるのですが、中のテキストコンテンツが取れず、undefinedになり比較することができません。
|
77
77
|
なので実行すると本来は表示されるはずの要素まで、すべてが消えてしまします。
|
78
78
|
|
79
|
-
逆にid指定
|
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
自分で試したことを追加しました。
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指定でテキストを埋め込んでいたのでできませんでした。
|