我有選擇框(多屬性),被稱爲「c0r1」,它包含的選項:的jQuery在選擇框中選擇多個數值
<select id="c0r1" multiple="multiple" class="fcv">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
</select>
我也有目標「foo」的
"foo" : {
"bar": ["x", "y", "z"],
"teal" : [
{"x" : ["A"], "y" : [...], "z" : [...]},
{"x" : [...], "y" : [...], "z" : [...]},
{"x" : [...], "y" : [...], "z" : [...]}
]
}
bar存儲一組值,然後將其用作深藍色陣列中的對象中的鍵。
c0r1(和c0r2,c1r1,...)的內容由「x」,「y」和「z」確定。代碼中的其他地方,它們代表一組值。該頁面將選擇框分配給一個組,並且從組中填充選項(以這種方式生成第一部分HTML)。
對於這個問題的目的,c0r1被分配(在其他地方的代碼)「X」,其包含的值「A」,「B」,和「C」
沒有得到更深了爲什麼事情就是這樣,我需要獲取foo.teal.x的值,並使用它們並「選擇」c0r1中的相應值。
當我使用以下JS:
var blah = foo.bar[0]; //blah = x
var value = foo.teal[0][blah][0]; //value = A
$("#c0r1").val(value);
沒有被選中。我已經介紹了一個調試器,blah和value被正確賦值,而jQuery不會拋出任何錯誤......只是,沒有任何東西被分配。
我也試過
$("#c0r1[value='" + value + "']").attr("selected", "selected");
//and
$("#c0r1[value='" + value + "']").prop("selected", true);
這當中,我發現在網絡上其他地方的建議。
顯然,一旦我有這個工作,我會建立代碼,以便選擇所有的值。爲什麼它不工作,atm?
在頁面的其他地方,我已經能夠使用相同的json對象和選擇框的.val()方法,它的工作正常。然而,這是第一例「多重」的案例。
謝謝, 山姆。
UPDATE:
嗯,只是有一個想法:爲DOM元素c0r1及其選項是動態生成的,是有可能,jQuery是不知道它們的存在?雖然我認爲會拋出一個異常(這段代碼沒有這樣做)。
更新2:
我已經工作了,這個問題已經無關什麼在這個問題正在討論中,它只是因爲代碼爲「選擇」的選項正在運行之前選項已收到。這些選項來自服務器響應,我不會在服務器響應之前調用上述代碼。
看起來像我倒下了舊的「延遲爲0」謬誤我的教授告誡我。
隨時downvote。
您是否嘗試過選擇的整個數組傳遞到'VAL('只是第一個項目,而不是)?例如。 'var values = foo.teal [0] [blah]; $(「#c0r1」)。val(values);' – cspotcode 2013-03-07 04:04:16
我有,仍無濟於事。 – 2013-03-07 05:25:06
嗯,只是在黑暗中拍攝: 我記得很久以前有一個IE6的問題,並設置複選框的值。我無法在RAM中創建複選框元素,設置選中狀態,然後將其添加到文檔中。在複選框添加到文檔之前設置選中的狀態總是會失敗。 您是否試圖在瀏覽器有機會將其呈現到文檔之前修改選擇列表?你也瞄準什麼瀏覽器? – cspotcode 2013-03-07 05:29:10