1

私はJavaScriptが初めてなので、私と一緒に裸でお願いします.このサイトの誰もが私たち初心者にとってとても素晴らしいので、事前に感謝します.だからここにいるのです...私は本当に一般的な音楽アプリ(ちょっと)を構築しています. 実際のシーンで使用されることはなく、単に js を学習して理解するためのものです。だから私はいくつかの場所で立ち往生しています。配列オブジェクトのコンストラクターがあり、アルバムを配列にプッシュしてから、ボタンをクリックしてさまざまな方法で整理できるテーブルに表示します。今、私はユーザーがテキストを入力し、それを配列と比較する検索ボックスを作ろうとしています。出力テキストエリアに一致が表示されると(または何が最善か)、それを機能させることができないようです。よろしくお願いします。また、window.onload イベントを用意して、すべての関数を初期化する必要がありますか?

私が一緒に持っているすべてを見るために: ここに私のフィドルがあります

そして、ここに私がうまくいかないように見えるコードがあります:

    //function to display artist info inner HTML if in array
    function displaySearchResult() {
    albums.sort(compareSearch);
    var output= document.getElementById("response");
    var formInput = document.getElementById("formInput").innerHTML;
      for (var i=0; i<album.length; i++){
           if (album[i].artist == formInput) {
       output = formInput + " , " + album[i].title + " " + album[i].artist;

   } else {
      alert("not found");
   }
   }
 }

HTML:

    <input type="text" id="formInput" value="Search for an Artist"> </input> <br>
    <button id="search" >Submit</button>
    <p><textarea name="response" rows="0" cols="45" wrap></textarea></p>
4

2 に答える 2

0

割り当てステートメントoutput.valueの代わりに使用します。outputこのような

output.value = formInput + " , " + album[i].title + " " + album[i].artist;

また、複数のリストを表示することを期待している場合は、結果を連結する必要があります。このように

var output= document.getElementById("response");
var formInput = document.getElementById("formInput").innerHTML;
output.value = "";
  for (var i=0; i<album.length; i++){
       if (album[i].artist == formInput) {
           output.value += formInput + " , " + album[i].title + " " + album[i].artist;

       } else {
           alert("not found");
       }
  }

を使用しているため、タグに id 値"response"を割り当てます。textareagetElementById

そして、window.onloadすべての関数を初期化するための関数を用意することをお勧めします

于 2013-04-27T02:34:53.327 に答える