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

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

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

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

Q&A

解決済

3回答

292閲覧

h1の今入っている要素に別の要素を付け足すjsを書きたいです。

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

0グッド

0クリップ

投稿2020/01/31 02:00

編集2020/01/31 02:30

今、h1にはある言語が入っていて、それに別の言語をプラスさせたいと思っています。
例えば下記のソースの場合だと【<h1>ここはh1です001</h1>】となるようにしたいという事です。
変数に置き換えてやったのですが、下記ではうまくいきません。

最終的にはプルダウンを付けて、そのプルダウンの選んだものによって<h1></h1>の値を変えていきたいので、
このようなjsを作りたいと思っています。

<h1 id="midashi">ここは</h1> <p>これはサンプルの本文です。</p> <select name="select" class="extraction"> <option value="001">001</option> <option value="002">002</option> </select>
<script> var h1_comment = document.getElementById( 'midashi' ); var select_val = $(".extraction").val(); if (select_val="001") { h1.textContent = h1_comment + "h1です001"; } else if (select_val="002") { h1.textContent = h1_comment + "h1です002"; } </script>

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

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

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

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

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

shinji709

2020/01/31 02:30

ロジック以前に文法ミスがありますね。h1.textContentとありますがh1は定義されていません。h1_comment.textContentの書き間違いでは。またselect_val=とありますがやりたいことは代入ではなく比較でしょうから==または===では?
退会済みユーザー

退会済みユーザー

2020/01/31 02:42

ご指摘ありがとうございます。文法ミスをしていました。 そちらは直す事できたのですが、下記がうまく代入できていなく、[object HTMLHeadingElement]になってしまいます。 【var h1_comment = document.getElementById( 'midashi' );】
BluOxy

2020/01/31 03:03 編集

yambejpさんの回答にもありますが、jQueryは導入済みでしょうか。
guest

回答3

0

以下を参考にしてみてください

JavaScript セレクトボックスの値を取得/設定するサンプル
https://itsakura.com/js-selectbox

投稿2020/01/31 03:08

wayadahata

総合スコア80

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

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

0

いくつか問題があります

  • 一部jQueryが混じっています
  • if内の比較演算子「==」が代入演算子「=」になっています
  • h1_commentはDOM要素なのに文字列を連結しています

投稿2020/01/31 02:57

yambejp

総合スコア114843

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

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

yambejp

2020/01/31 02:58

<script> window.addEventListener('DOMContentLoaded', ()=>{ var h1_comment = document.querySelector('#midashi'); var h1_org_text=h1_comment.textContent; var ext=document.querySelector(".extraction"); ext.addEventListener('change',()=>{ if (ext.value=="001") { h1_comment.textContent = h1_org_text + "h1です001"; } else if(ext.value="002") { h1_comment.textContent = h1_org_text + "h1です002"; } }); }); </script> <h1 id="midashi">ここは</h1> <p>これはサンプルの本文です。</p> <select name="select" class="extraction"> <option value="001">001</option> <option value="002">002</option> </select>
yambejp

2020/01/31 02:58

ロード時にも適用したいならもうちょい工夫が必要
guest

0

ベストアンサー

問題点が2つ見つかったので分けて書きました。

(index):xx Uncaught ReferenceError: h1 is not definedとエラーが発生する

h1 という変数が定義されていないという意味です。

実際にxx行目を見ると h1.textContent = h1_comment + "h1です001"; でエラーが出ています。
今回は <h1 id="midashi">ここは</h1> に文字列を足したいということなので、h1.textaContent ではなく h1_comment.textContent ではないでしょうか。

diff

1var h1_comment = document.getElementById( 'midashi' ); 2- h1.textContent = h1_comment + "h1です001"; 3+ h1_comment.textContent = h1_comment+ "h1です001";

h1_commentをconsole.log()などで確認すると[object HTMLHeadingElement]が表示される

まずh1_comment[object HTMLHeadingElement]なのはDocument.getElementById()の仕様です。

Document の getElementById() メソッドは、 id プロパティが指定された文字列に一致する要素を表す Element オブジェクトを返します。

この Element オブジェクトから、欲しい情報を引き出して使います。

textContentElement オブジェクト(実際には Node インターフェイス)のプロパティです。
なので、もし h1_comment からタグ内に書かれた文字を取得したい場合は、 h1_comment.textContent のように書く必要があります。

diff

1var h1_comment = document.getElementById( 'midashi' ); 2- h1_comment.textContent = h1_comment + "h1です001"; 3+ h1_comment.textContent = h1_comment.textContent + "h1です001";

jsfiddle

投稿2020/01/31 02:57

編集2020/01/31 04:05
BluOxy

総合スコア2663

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

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

退会済みユーザー

退会済みユーザー

2020/01/31 10:39

ご丁寧に教えて頂きありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問