2017-08-10 35 views
1

首先,我設法在失敗並重試後使其工作,但我不明白爲什麼有些嘗試失敗。 : 我的目標是修改兩個取決於網頁一些信息選擇(2個選擇都應該是充滿了相同的信息)修改兩個同時選擇

失敗嘗試2我不明白:

$('#select1').find('option').remove().end(); 
$('#select2').find('option').remove().end(); 

for (var i=0; i<data.length; i++){ 
    var option = document.createElement('option') 
    option.value = data[i].value; 
    option.text = data[i].text; 
    $('#select2').append(option); 
    $('#select1').append(option); 

這兩個我的選擇空,但只有#select1後填充。如果我換了最後兩行 - >

失敗的嘗試1我不明白:

$('#select1').append(option); 
    $('#select2').append(option); 

現在是我的#select2被填滿。

,並使其工作,我不得不做$('#select1, #select2').append(option);

爲什麼前兩個嘗試失敗了嗎?是像Python生成器那樣的var option = document.createElement('option')

編輯:我的問題不是關於#,我忘了在問題中鍵入他們,但他們存在於我的代碼

+0

看起來他們失敗了,因爲您錯過了'#'。您需要在這裏添加'#''$('select1')。' –

+0

已修復問題。 (我輸入所有的代碼,複製/麪食的代碼是不可能的)這次我輸入正確 – pwnsauce

+0

做一個工作片段 –

回答

0

此行爲背後的原因是,document.createElement返回一個HTML元素,它是一個真實的對象,並且您可以將其追加到HTML中的任何其他元素,只要您想要的次數。

但是,因爲它是同一個對象,所以在將它追加到第二個下拉列表時不會被克隆。您可以撥打.cloneNode複製它,然後附加它:

$('#select1').append(option); 
$('#select2').append(option.cloneNode); 
0

您選擇不包括#:

$('#select1').append(option); 
$('#select2').append(option); 
+0

對不起,我忘了他們(不能複製/粘貼我的代碼),但它不是問題 – pwnsauce