2017-05-18 9 views
-2

タイトルが自明であることを望みますが、それでも問題を説明しようとします。JS:.prepend()2を選択するオプションが機能しない

私のHTMLファイルには、2つの選択肢があり、オプションはありません。ページのロード時に、いくつかのデータをフェッチするためにajaxリクエストが実行されます。私のAjaxリクエストのsuccessコールバックでは、今取得したすべてのデータに対してoption要素を作成します。私もselectの両方にこれらの新しく作成されたオプションの要素を付加ますが、作品だけプリペンドはここで最後select

で行うものですこのexamlpleでは、オプションがオンの前に付加されており、私のコードのSCですinto_APPNAMEを選択するだけで、from_APPNAMEには表示されません。私はそれで

$("#into_" + repoName).prepend(option) $("#from_" + repoName).prepend(option)

のみfrom_APPNAME選択持っているでしょうオプションなどプリペンドを戻したい場合。

何が起こっているのですか?あなたは二つの異なるHTML要素を作成するか、新しいものを作成するために作成された最初の1クローンを作成する必要が

enter image description here enter image description here

+3

実際のコードを掲載してください(実際の画像を印刷してください) – Ken

+0

'.prepend()'はDOMに追加する前にノードを魔法のようにクローンしません。 – Andreas

+0

@Ken何が変わるのですか? –

答えて

1

。変数を取り除くこと、もう一つの方法は、以下のことができるオプション2に

var option2 = $(option1).clone(); 

をオプション1のクローンを作成することはもちろん

var option1 = $('<option></option>').attr('value', branch).text(branch); 
var option2 = $('<option></option>').attr('value', branch).text(branch); 
$("#into_" + repoName).prepend(option1); 
$("#from_" + repoName).prepend(option2); 

よりよい:

$("#into_" + repoName).prepend($('<option></option>').attr('value', branch).text(branch)); 
$("#from_" + repoName).prepend($('<option></option>').attr('value', branch).text(branch)); 
例えばこのコードは、それらの両方を取り込む必要があります
関連する問題