プロが教える店舗&オフィスのセキュリティ対策術

非同期通信でQ&A掲示板を作成しています。
JavaScript appendChild で親要素に子要素を追加する際、HTMLのクラスごとに判別するできるようにしたいのですが、変数名に - や _ や空白が変数名に使えずエラーが起きておりどうすべきか悩んでおります。
アドバイスお願い致します。

<!-- 表示したいHTML-->
<div id="confirm_area" style="display: block;">
<div class="title-partial parts"> <!-- title-partial + parts -->
質問タイトルテスト
</div>

<div class="namae-partial parts"> <!-- title-partial + parts -->
名前テスト
</div>

<div class="body-partial parts"><!-- body-partial + parts -->
コメントテスト
</div>

<div class="post-button"><!-- ボタンを押せなくする -->
<button type="button">入力画面へ戻る</button><button type="button" name="output">結果画面へ進む</button>
</div>
</div>
</div>
<!-- type、name、id、valueの順番 -->
</div>
</div>


<!-- 変数名でエラーが起きているコード -->
<script>
confirm_area.textContent = '';
var div;
var child;
// class
const board_form_partial_div = document.createElement("div");
// classの追加
board_form_partial_div.classList.add("board_form_partial");
// id
const js_board_form_partial_div = document.createElement('div');
// idの追加
js_board_form_partial_div.id = 'js_board_form_partial_div';

const questionHeader-partial_div = document.createElement("div");
questionHeader-partial_div.classList.add("questionHeader-partial");
div.appendChild(child); // div の末尾に child を追加

const title-partial parts_div = document.createElement("div");
title-partial parts_div.classList.add("title-partial parts");
child = document.createElement("p");
child.appendChild(document.createTextNode(title_value));
div.appendChild(child); // div の末尾に child を追加

const namae-partial parts_div = document.createElement("div");
namae-partial parts_div.classList.add("namae-partial parts");
child = document.createElement("p");
child.appendChild(document.createTextNode(namae_value));
div.appendChild(child); // div の末尾に child を追加

const body-partial parts_div = document.createElement("div");
body-partial parts_div.classList.add("body-partial parts");
child = document.createElement("p");
child.appendChild(document.createTextNode(question_value));
div.appendChild(child); // div の末尾に child を追加

const post-button_div = document.createElement("div");
post-button_div.classList.add("post-button");

child = document.createElement("button");
child.type = "button";
child.innerText = "入力画面へ戻る";
child.addEventListener("click", () => {
input_area.style.display = "block";
// 空文字を入れることで要素内を空にできる
confirm_area.textContent = '';
confirm_area.style.display = "none";
});
div.appendChild(child); // div の末尾に child を追加
child = document.createElement("button");
child.type = "button";
//name属性の追加・変更
child.setAttribute("name", "output");
child.innerText = "結果画面へ進む";
child.addEventListener("click", confirm_button_click);
div.appendChild(child); // div の末尾に child を追加
confirm_area.appendChild(div); // confirm_area の末尾に div を追加
input_area.style.display = "none";
confirm_area.style.display = "block";
})
.catch(error => {});
}
</script>

A 回答 (4件)

案1. ローカル変数名をキャメルケースで書く


例)
var divTitlePartialParts = 要素;
divTitlePartialParts.append(子要素);
親要素.append(divTitlePartialParts);

案2. 変数名ではなくプロパティ名として書く
例)
var div = {};
div["title-partial parts"] = 要素;
div["title-partial parts"].append(子要素);
親要素.append(div["title-partial parts"]);

余談ではありますが
誤: 要素.classList.add("title-partial parts");
正: 要素.classList.add("title-partial", "parts");
参考)
https://developer.mozilla.org/ja/docs/Web/API/DO …
    • good
    • 1
この回答へのお礼

アドバイスありがとうございます。
案2. 変数名ではなくプロパティ名として書くについてお聞きしたいのですが、プロパティ名は class ごとに分けるべきでしょうか?
HTMLタグごとのみ分けるだけで良いのでしょうか?

※例(質問のコードにはないスタンプ選択部分のコードを書き換えてみました。)

※該当コード(sample.phpの304行目から408行目までに案1. ローカル変数名をキャメルケースで書く方法をsample.jsに案2変数名ではなくプロパティ名として書く方法についてお聞きしたいコードを書きました)
https://wandbox.org/permlink/ncJsnAA8BEgkpAx5

お礼日時:2024/02/29 01:30

JSの変数やメソッドでは、camelCase で命名するのが慣例です。



https://ja.m.wikipedia.org/wiki/%E3%82%AD%E3%83% …
    • good
    • 1
この回答へのお礼

アドバイスありがとうございます。camelCaseは初めて知りました、今後使えそうなので覚えておきます。

お礼日時:2024/02/29 01:07

camel case?

    • good
    • 1
この回答へのお礼

アドバイスありがとうございます。camelCaseというものを初めて知りました。勉強になります。

お礼日時:2024/02/29 01:06

適当に



 variable001
 variable002
 variable003
 variable004
 …

とでもすればいい。
あとはコメントアウトした行にその変数の説明を記述しておけば問題は無い
……と思う。
    • good
    • 1
この回答へのお礼

アドバイスありがとうございます。コメントアウトで説明を書くことは想定外でした参考にさせていただきます。

お礼日時:2024/02/29 01:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A