質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

731閲覧

querySelectorAllでブラウザにテキストを反映できない

ylc

総合スコア9

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/06/16 10:31

JavaScriptでquerySelectorAllを用いて、ブラウザにテキスト表示させようとしていますが、

HTML

1<body> 2 3 <ul id="aiueo"> 4 <li class="hoge1">カテゴリ1</li> 5 <li class="hoge2">カテゴリ2</li> 6 <li class="hoge3">カテゴリ3</li> 7 </ul> 8 9 <script src ="js/practice.js"></script> 10 11</body>

js

1{ 2 const list = document.querySelector('#aiueo'); 3 list.innerHTML ="サンプル"; 4 ); 5}

まず上記のquerySelectorの方では、

サンプル

とブラウザに表示できました。しかし、

HTML

1 <ul id="aiueo"> 2 <li class="hoge1">カテゴリ1</li> 3 <li class="hoge2">カテゴリ2</li> 4 <li class="hoge3">カテゴリ3</li> 5 </ul> 6 7 <script src ="js/practice.js"></script> 8 9</body>

js

1{ 2 const list = document.querySelectorAll('#aiueo'); 3 list.innerHTML ="サンプル"; 4 ); 5}

上記のquerySelectorAllで表示させようとすると、

カテゴリ1
カテゴリ2
カテゴリ3

と元のHTMLのテキストが表示されてしまいます。

自分としては、

サンプル
サンプル
サンプル

と表示されると思ったのですが、どの点がいけないのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

querySelectorAllはその名前の通り、複数の要素が取れうるものなので、返り値は個々のエレメントではなく、それを束ねた配列のようなものです。書き換える際にはforforEachなどで回して1つずつ処理する必要があります。

あと、document.querySelectorAll('#aiueo')で取れるのは外側の<ul id="aiueo">です。中身の<li>ではありません。

投稿2020/06/16 10:38

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ylc

2020/06/16 10:45 編集

ご丁寧に回答いただきありがとうございます。 それではjsの方で、 { const list = document.querySelectorAll('.hoge1 .hoge2 .hoge3'); list.forEach( x => { x.innerHTML = "サンプル"; }); } と記述をしましたが、これでもブラウザでは カテゴリ1 カテゴリ2 カテゴリ3 となってしまいます。 どの点がおかしいのでしょうか…?
maisumakun

2020/06/16 10:47

「'.hoge1 .hoge2 .hoge3」は「.hoge1の中にある.hoge2の中にある.hoge3」という意味のセレクタです。
ylc

2020/06/16 10:51

返信ありがとうございます。 それでは、 カテゴリ1 カテゴリ2 カテゴリ3 を サンプル サンプル サンプル に変えるにはどのように記述すればよろしいでしょうか?
maisumakun

2020/06/16 10:52

セレクタを「'.hoge1, .hoge2, .hoge3'」あるいは「'#aiueo li'」のようにすればいいかと思います。
ylc

2020/06/16 10:55

カンマを見落としていました。 ご丁寧にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問