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

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

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

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

HTML5

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

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

JavaScript

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

Q&A

解決済

2回答

1438閲覧

JavaScriptで連番のIDのValueに値を入れたいです。

iisaniisan

総合スコア75

JSF

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

HTML5

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

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

JavaScript

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

0グッド

1クリップ

投稿2022/08/12 07:15

編集2022/08/12 09:10

JavaScriptで
document.getElementById(ID名).value = "値";とすると
該当IDのValueに値が入ると思うのですが、このIDの部分が連番の場合、どう書いたら良いのかがわかりません。

JavaScript

1function abcSuccess(xml, status){ 2 $(xml).find(item).each(function(){ 3 $(this).find("xxList").each(function(){ 4 var nameArray = new Array(); 5 var i = 0; 6 var j = 0; 7 $(xml).find("item").each(function() { 8 nameArray[i] = $("m_Label", this).text(); 9 i++; 10 )}; 11 for(j = 0; j < array.length; j++){ 12 document.getElementById('jsfform:abc:' + j + ':efgLabel').value = nameArray[j]; 13 } 14 return; 15 }); 16 }); 17} 18//上のソースの 19//('jsfform:abc:' + j + ':efgLabel').valueの部分の書き方がわからず、悩んでいます。

jsp

1<td> 2 <t:dataList id="abc"> 3 <t:div> 4 <h:outputLabel> 5 <h:outputText id="efg" value="#{xxList".label}" /> 6 </h:outputLabel> 7 </t:div> 8 </t:dataList> 9</td>

やりたいこととしては

IDがjsfform:abc:0:efgLabelのvalueにnameArray[0]を代入 IDがjsfform:abc:1:efgLabelのvalueにnameArray[1]を代入 IDがjsfform:abc:2:efgLabelのvalueにnameArray[2]を代入

をしていきたいです。
よろしくお願いいたします。

下記、実行時のコンソールのエラー文です。

Attribute 'for' of label component with id jsfform:abc:0:idJsp101 is notdefined Attribute 'for' of label component with id jsfform:abc:1:idJsp101 is notdefined Attribute 'for' of label component with id jsfform:abc:2:idJsp101 is notdefined Invalid tag found : unexpected input while looking for attr name or '>' at line 400

出力した時の該当部分HTMLを追記します。

HTML

1<td> 2 <div> 3 <lavel> 4 <span id = "jsfform:abc:0:efgLabel">あああ 5 </span> 6 </label> 7 </div> 8 <div> 9 <lavel> 10 <span id = "jsfform:abc:1:efgLabel">いいい 11 </span> 12 </label> 13 </div> 14 <div> 15 <lavel> 16 <span id = "jsfform:abc:2:efgLabel">ううう 17 </span> 18 </label> 19 </div> 20</td> 21

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

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

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

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

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

guest

回答2

0

自己解決

document.getElementById('jsfform:abc:' + j + ':efgLabel').innerText = nameArray[j];

にしたら解決しました。
ありがとうございました。

投稿2022/08/15 00:46

iisaniisan

総合スコア75

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

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

0

JavaScriptは大文字と小文字を区別しますので、arrayArrayは別物です。

IDの書き方の問題ではなく、そちらでうまく動かなくなっているのではないでしょうか。

投稿2022/08/12 07:27

maisumakun

総合スコア145183

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

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

maisumakun

2022/08/12 07:30

Array(先頭大文字)は配列に関連した組み込みオブジェクトですので、自分で作る変数の名前としては不適当です。
iisaniisan

2022/08/12 07:33

すみません。質問する際に大文字と小文字を書き間違えてしまいました。
maisumakun

2022/08/12 07:43

コンソールにエラーなどは出ていませんか?
iisaniisan

2022/08/12 07:59

エラー出ていました。質問文に追加で書きました。
maisumakun

2022/08/12 08:30

abcSuccess関数が呼び出されていることは確認しましたか?
iisaniisan

2022/08/12 08:32

abcSuccess関数が呼び出されていることは確認しました。
maisumakun

2022/08/12 08:36 編集

現状ではどのような動作をしているのですか?
iisaniisan

2022/08/12 08:51

abcSuccess関数で現状は xmlのitemに入っているm_Labelの値を1個ずつ取ってきてnameArrayの配列に入れています。 そのあと、nameArrayに入れた値をjspソースでいうと <h:outputText id="efg" value="#{xxList".label}" />のvalueの部分に入れたいと思っています。 サーバーを始動させて、chromeの検証ツールのElementsで見ると該当する場所のHTMLのidがjsfform:abc:番号:efgLabelとなっているので、そこに入れる処理を書こうとしています。
maisumakun

2022/08/12 08:59

<h:outputText>は、出力されたHTMLではどのようなタグになっていますか?(そのままHTMLに書かれている状況でしょうか?)
iisaniisan

2022/08/12 09:04

h:outputTextの部分は出力されるとspanになっています。
maisumakun

2022/08/12 09:06 編集

<span>にvalueというプロパティはありません(JavaScriptから「value=」と代入はできますが、HTMLに何の影響も及ぼしません)。むりやりvalueを付けたい場合はsetAttributeで入れてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問