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

回答編集履歴

2

コード追記

2021/01/25 23:57

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -13,4 +13,10 @@
13
13
 
14
14
  ```js
15
15
  $(".name > li:only-child").parent().addClass("none");
16
+ ```
17
+
18
+ :has() を使うとよりシンプルになりますね。
19
+
20
+ ```js
21
+ $(".name:has(li:only-child)").addClass("none");
16
22
  ```

1

コード追記

2021/01/25 23:57

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -1,5 +1,16 @@
1
- 下記でどうでしょう。
1
+ 複数の要素に対して、それぞれに処理をするときは、each をつかといいでしょう。
2
2
 
3
3
  ```js
4
+ $(".name").each(function(index, element) {
5
+ const len = $(element).children("li").length;
6
+ if(len === 1) {
7
+ $(element).addClass('none');
8
+ }
9
+ })
10
+ ```
11
+
12
+ cssセレクタに、`:only-child` というのがあるので、それを使うと下記のようにシンプルに記述できます。
13
+
14
+ ```js
4
15
  $(".name > li:only-child").parent().addClass("none");
5
16
  ```