質問編集履歴

3

追記削除

2022/07/05 08:55

投稿

Hayato1201
Hayato1201

スコア220

test CHANGED
File without changes
test CHANGED
@@ -10,28 +10,3 @@
10
10
 
11
11
 
12
12
 
13
-
14
- -------------追加---------------
15
-
16
- ご回答ありがとうございます。
17
-
18
- 本件の質問の意図としては [こちら](https://teratail.com/questions/eycy3e1fu22w29#reply-6vpgs3d8qkhbpy) の質問にあるように以下の様にしてdivとaタグ以外の要素を検出したいと言う状況があり、かつ今回divやaのstyle属性やhref属性以外も検出したいという状況になったので、*:not(a):not(div)の条件に加えてstyleの属性を持つdivと何も属性を持たないdiv、のような条件を追加したかったという感じです。(つまりstyle属性もしくはhref属性のみを持ったdivやa、何も属性のないdivやaのみかを確認したいと言う状況です。)
19
-
20
-
21
- ```js
22
- let parent = document.createElement('div');
23
- // この innerHTML では <script> は実行されないし、<img> や <iframe> のロードも始まらない
24
- parent.innerHTML = '<div><input></div>';
25
- if (parent.querySelectorAll('*:not(a):not(div)').length > 0) {
26
- // a div 以外の要素があった
27
- }
28
- ```
29
-
30
- そこで、ご回答いただいた様にhasAttributes()でターゲットの文字列に属性を持つエレメントを抽出してそれに対してquerySelectorAll('*:not(div[style])')の様な形で属性のチェックをしようと思ったのですが、それだとstyle属性を持っていればそれ以外の属性があってもスルーしてしまいます。
31
-
32
- そこで次は、
33
- ・not(div[style])ではなくstyle属性のみをもつ、と言う条件は指定可能でしょうか?
34
- ・もしくは上記以外で'<div><input></div>'の様な文字列から特定の属性を持つエレメント、もしくは属性を持たないエレメントの取得は可能でしょうか??
35
-
36
- 上記に関してもしお分かりになりましたらご回答いただけますと非常に助かります。
37
-

2

追記

2022/07/05 07:14

投稿

Hayato1201
Hayato1201

スコア220

test CHANGED
File without changes
test CHANGED
@@ -15,7 +15,7 @@
15
15
 
16
16
  ご回答ありがとうございます。
17
17
 
18
- 本件の質問の意図としては [こちら](https://teratail.com/questions/eycy3e1fu22w29#reply-6vpgs3d8qkhbpy) の質問にあるように以下の様にしてdivとaタグ以外の要素を検出したいと言う状況があり、かつ今回divやaのstyle属性やhref属性以外も検出したいという状況になったので、*:not(a):not(div)の条件に加えてstyleの属性を持つdivと何も属性を持たないdiv、のような条件を追加したかったという感じです。
18
+ 本件の質問の意図としては [こちら](https://teratail.com/questions/eycy3e1fu22w29#reply-6vpgs3d8qkhbpy) の質問にあるように以下の様にしてdivとaタグ以外の要素を検出したいと言う状況があり、かつ今回divやaのstyle属性やhref属性以外も検出したいという状況になったので、*:not(a):not(div)の条件に加えてstyleの属性を持つdivと何も属性を持たないdiv、のような条件を追加したかったという感じです。(つまりstyle属性もしくはhref属性のみを持ったdivやa、何も属性のないdivやaのみかを確認したいと言う状況です。)
19
19
 
20
20
 
21
21
  ```js

1

追記

2022/07/05 07:10

投稿

Hayato1201
Hayato1201

スコア220

test CHANGED
File without changes
test CHANGED
@@ -7,3 +7,31 @@
7
7
  このような場合どのようにセレクタを指定すれば良いでしょうか?
8
8
 
9
9
  ご存知の方いればご教示いただけますと助かります・・
10
+
11
+
12
+
13
+
14
+ -------------追加---------------
15
+
16
+ ご回答ありがとうございます。
17
+
18
+ 本件の質問の意図としては [こちら](https://teratail.com/questions/eycy3e1fu22w29#reply-6vpgs3d8qkhbpy) の質問にあるように以下の様にしてdivとaタグ以外の要素を検出したいと言う状況があり、かつ今回divやaのstyle属性やhref属性以外も検出したいという状況になったので、*:not(a):not(div)の条件に加えてstyleの属性を持つdivと何も属性を持たないdiv、のような条件を追加したかったという感じです。
19
+
20
+
21
+ ```js
22
+ let parent = document.createElement('div');
23
+ // この innerHTML では <script> は実行されないし、<img> や <iframe> のロードも始まらない
24
+ parent.innerHTML = '<div><input></div>';
25
+ if (parent.querySelectorAll('*:not(a):not(div)').length > 0) {
26
+ // a div 以外の要素があった
27
+ }
28
+ ```
29
+
30
+ そこで、ご回答いただいた様にhasAttributes()でターゲットの文字列に属性を持つエレメントを抽出してそれに対してquerySelectorAll('*:not(div[style])')の様な形で属性のチェックをしようと思ったのですが、それだとstyle属性を持っていればそれ以外の属性があってもスルーしてしまいます。
31
+
32
+ そこで次は、
33
+ ・not(div[style])ではなくstyle属性のみをもつ、と言う条件は指定可能でしょうか?
34
+ ・もしくは上記以外で'<div><input></div>'の様な文字列から特定の属性を持つエレメント、もしくは属性を持たないエレメントの取得は可能でしょうか??
35
+
36
+ 上記に関してもしお分かりになりましたらご回答いただけますと非常に助かります。
37
+