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

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

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

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

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

解決済

1回答

1848閲覧

【Monaca:OnsenUI】insertAdjacentHTMLでons-list-itemをforループする方法

todayyy

総合スコア31

JavaScript

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

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

0クリップ

投稿2020/04/20 15:19

【実現したいこと
タイトルの通り、ons-list-itemをinsertAdjacentHTMLでforを使用したループ処理をしたいです。(配列を1つずつons-list-itemとして表示)

【試したこと】

HTML

1 <ons-template id="tab3.html"> 2 <ons-page id="third-page"> 3 4 <div style="text-align:center; "> 5 <ons-button onclick="btn_test();" style="margin-top:30px;">test_button</ons-button> 6 </div> 7 8 <ons-list id="ons-list"> 9 </ons-list> 10 11 </ons-page> 12 </ons-template>

Javascript

1var arr = ["黒" , "金" , "赤" , "黄緑" , "青" , "紫"]; 2var list = ""; 3function btn_test(){ 4 for(var i = 0; i < arr.length; i++){ 5 list += "<ons-list-item>" + arr[i] + "</ons-list-item>"; 6 } 7 document.getElementById('ons-list').insertAdjacentHTML('afterbegin' , list); 8}

イメージ説明

・innerHTMLだと正しく配列ずつ表示されました。
・ons-list-itemではなく、ons-listをdivに変更しliタグでinsertAdjacentHTML()を実行したところ、正常に表示されました。

回答よろしくお願いします。

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました
ons-list-itemタグにそれぞれデフォルトのclassを付与したところ、無事正常に表示されました。innerHTMLだとclass名とdivが自動的に付与されるのに対して、insertAdacentHTMLは手動で入力しないといけないみたいです。

Javascript

1var arr = ["黒" , "金" , "赤" , "黄緑" , "青" , "紫"]; 2var list = ""; 3function btn_test2(){ 4 5 for(var i = 0; i < arr.length; i++){ 6 list += '<ons-list-item class="list-item"><div class="center list-item__center">' + arr[i] + '</div></ons-list-item>' 7 8 } 9 document.getElementById('ons-list').insertAdjacentHTML('afterbegin' , list); 10}

イメージ説明

投稿2020/04/22 13:23

todayyy

総合スコア31

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

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

todayyy

2020/04/23 15:48

otak-labさんコメントありがとうございます!そうなんですね!ありがとうございます!勉強になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問