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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

Q&A

解決済

2回答

238閲覧

Object.keysでキーと値をlistのliタグ内で展開したいです。

nanashissss

総合スコア60

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

0グッド

0クリップ

投稿2022/06/21 03:54

編集2022/06/21 06:13

全ページのcopyrightの上にfooter用のナビゲーションを追加したいです。
全ページに入れたいのですが、Object.keysでキーと値をlistのliタグ内で展開したいのですがPHPのように組み込みがうまくいかなく。
レクチャー頂ければ幸いです。
※querySelectorでcopyrightを取得してそちらの上部にHTMLを差し込みたいです

var obj = { テキストa:"localhost/index", テキストb:"localhost/index2", テキストc:"localhost/index3", }; Object.keys(obj).forEach(function(key) { console.log(key, obj[key]); }); console.log(HtmlDoc());
document.addEventListener('DOMContentLoaded', function() { const targetElement = document.querySelector('.copyright'); const HtmlDoc = ` <div class="footer"> <ul class="footer_navlist"> <li><a href="localhost/index">テキストa</a></li> <li><a href="localhost/index2">テキストb</a></li> <li><a href="localhost/index3">テキストb</a></li> <li></li> <li></li> <li></li> <li></li> </ul> <div> `; targetElement.insertAdjacentHTML('beforebegin', HtmlDoc); });

PHPで恐縮ですが再現したいのは以下のような物です

<?php $navlist = [ 'index' => 'テキストa', 'index2' => '"テキストb', ]; ?> <li> <?php foreach($navlist as $key => $text):?> <li><a href="<?php echo $key ?>"><?php echo $text ?> </a> </li> <?php endforeach; ?> </li>

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

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

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

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

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

yambejp

2022/06/21 04:00

サンプルでつけているPHPが無茶苦茶なので何をしたいかわかりません hrefがおかしい空のアンカーをつくってどうするつもりでしょうか? <a href="テキストa"></a>
nanashissss

2022/06/21 04:09

すみません。hrefは空ではなく各URLを展開したいのです
yambejp

2022/06/21 04:11

結果としてえたいHTMLを明示ください
nanashissss

2022/06/21 04:24 編集

以下のようなhtmlを展開して各ページの<p class="copyright"></p>の上に差し込みたいのです <div class="footer"> <ul class="footer_navlist"> <li><a href="index">テキストa</a></li> <li><a href="index2">テキストb</a></li> <li><a href="index3">テキストc</a></li> <li><a href="index4">テキストd</a></li> <li><a href="index5">テキストe</a></li> <li><a href="index6">テキストf</a></li> </ul> </div>
yambejp

2022/06/21 04:20

とりあえず回答しておきました。
退会済みユーザー

退会済みユーザー

2022/06/21 05:19 編集

差し込みたいっていう要件、質問文中に乗せるべきものなのに、気づかなかったわ。あとからでもいいので、質問文中に反映してね。質問への追記・修正の依頼の箇所はあくまでオマケなので。
nanashissss

2022/06/21 05:11

内容が分かりにくく、申し訳ございませんでした
guest

回答2

0

Object.entries() - JavaScript | MDN
のサンプルコードが使えそうです。

javascript

1var obj = { 2 テキストa: "localhost/index", 3 テキストb: "localhost/index2", 4 テキストc: "localhost/index3", 5}; 6for (const [key, value] of Object.entries(obj)) { 7 console.log(`<li><a href="${value}">${key}</a></li>`); 8}

投稿2022/06/21 04:24

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

nanashissss

2022/06/21 04:28

ありがとうございます。 参考にさせていただきます。
guest

0

ベストアンサー

javascript

1<script> 2window.addEventListener('DOMContentLoaded', ()=>{ 3 var obj = { 4 テキストa:"localhost/index", 5 テキストb:"localhost/index2", 6 テキストc:"localhost/index3", 7 }; 8 const HtmlDoc = ` 9 <div class="footer"> 10 <ul class="footer_navlist"> 11 </ul> 12 </div> 13`; 14 const frg = Object.assign(document.createElement("template"),{innerHTML:HtmlDoc}); 15 Object.entries(obj).forEach(x=>{ 16 frg.content.querySelector('.footer_navlist').insertAdjacentHTML('beforeend',`<li><a href="${x[1]}">${x[0]}</a></li>\n`); 17 }); 18 document.querySelector('.copyright').before(frg.content); 19}); 20</script> 21<div class="copyright">&copy;sample</div>

ちなみにphpならこんな感じ

PHP

1<?PHP 2 $obj = [ 3 "テキストa"=>"localhost/index", 4 "テキストb"=>"localhost/index2", 5 "テキストc"=>"localhost/index3", 6 ]; 7?> 8<div class="footer"> 9<ul class="footer_navlist"> 10<?PHP foreach($obj as $key=>$val){ 11 print "<li><a href=\"$val\">$key</a></li>\n"; 12} 13?> 14</ul> 15</div>

ただし、urlencodeやhtmlspecialcharsが必要になる可能性もあるので注意ください

投稿2022/06/21 04:20

編集2022/06/21 06:22
yambejp

総合スコア114839

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

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

nanashissss

2022/06/21 04:27

早速のご回答ありがとうございます。 希望していたものが再現できました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問