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

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

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

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

jQuery

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

Q&A

解決済

3回答

907閲覧

jQueryのappend()がうまく機能しません

saito3

総合スコア11

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2018/11/08 02:37

select要素を作成し、そのopitonへGETしてきたテンプレートの名前を動的に表示したいと思ってます。
tempRecは省略しておりますが、とある複数のレコードです。
tempRecをOrganizeRecordのfunctionで整理した後、
$.eachで追加しているはずなのですが、selectには何も追加されません。
どこが悪いのでしょうか。よろしくお願いします。

javascript

1let useRec = OrganizeRecord(tempRec); 2var templateSpace = $('<select>', { 3 id: 'temp_select2' 4}); 5$.each(useRec, function(key, val) { 6 $('#temp_select2') 7 .append($("<option></option>") 8 .attr("value",val.template_name.value) 9 .text(val.template_name.value)); 10console.log(val.template_name.value); 11}); 12$('.kintone-app-record-headermenu-space').append(templateSpace); 13 14function OrganizeRecord(rec){ 15 let returnRec = []; 16 for(var i = 0 ; i<rec.records.length ; i++){ 17 var str = rec.records[i].template_name.value; 18 if(str.indexOf("157_") >= 0){ 19 returnRec = returnRec.concat(rec.records[i]); 20 } 21 } 22 return returnRec; 23 }

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

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

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

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

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

yambejp

2018/11/08 02:44 編集

HTMLも記載してください、OrganizeRecord()は何を返しているのでしょうか?任意のトリガーはなくhtmlのロード時でよろしいですか?
saito3

2018/11/08 03:02

OrganizeRecord()は引数recに157の文字を含むものを配列化して返してます。任意のトリガーはなく、htmlのロード時になります。
guest

回答3

0

templateSpaceをappendする前にはまだtemp_select2が存在していないので、$('#temp_select2')としても見つかりません。
$.each()の前にこちらを実行してください。

jQuery

1$('.kintone-app-record-headermenu-space').append(templateSpace);

投稿2018/11/08 03:21

x_x

総合スコア13749

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

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

saito3

2018/11/08 05:24

ありがとうございます! すみませんが皆さんの意見で自身で問題を判別して解決できました!
guest

0

JavaScript

1 $('#temp_select2') 2 .append($("<option></option>") 3 .attr("value",val.template_name.value) 4 .text(val.template_name.value)

これって#temp_select2にappendして(ここまではいい)
#temp_select2にattrして、#temp_select2にtextしてるってことになります。
attrとtextは<option>にしたいはずなので、以下のような感じになるかと思います。

JavaScript

1 $('<option>') 2 .attr("value",val.template_name.value) 3 .text(val.template_name.value) 4 .appendTo('#temp_select2')

投稿2018/11/08 02:46

root_jp

総合スコア4666

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

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

saito3

2018/11/08 03:02

確かに僕のやりたいことはそれで合ってますが、結局上記コードにしても変わりませんでした・・
guest

0

自己解決

すみません今回の問題点がわかりました。(以下自分なりの書き方と自覚せず省略している部分があると思いますのでご了承を)
jQueryでselect要素を作成し、変数に格納。
変数に格納しているだけでまだHTML要素には追加されてないので、
変数に格納されているselectにopitonを追加した後にappendしても反映されませんでした。

そこでまずはselect要素をHTMLにappend。
その後にselectに対してoptionをappendしたら意図した動きになりました。

何か引っかかるところがありますが、再度質問させて頂きます。

投稿2018/11/08 03:18

saito3

総合スコア11

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問