<!DOCTYPE html>
<html>
<script type="text/javascript" src="../jquery-1.4.4.min.js" />
<script type="text/javascript">
function click(){
var select = document.getElementById("select");
var json = [["Deutsch", "de-DE"], ["US Englisch", "en-US"]];
json = JSON.parse(json);
select.options.length = 0;
for(var i=0; i<json.length; i++) {
$("#select").append(new Option(json[i][0], json[i][1], false, false));
}
}
</script>
<body>
<select id="select"></select>
<input type="button" onclick="click()" />
</body>
</html>
我正在尝试向select元素添加选项,但无济于事。
答案 0 :(得分:3)
这不起作用,因为它实际上不是JSON数据。这是一个javascript数组:
var json = [["Deutsch", "de-DE"], ["US Englisch", "en-US"]];
// json = JSON.parse(json);
// ^-----Eliminate the second line.
此外,您不应使用click
作为方法名称。它会干扰某些浏览器。
答案 1 :(得分:2)
我会做
var mySel = $('#select')[0];
for(var i=0; i<json.length; i++){
mySel.append(whatever);
}
提高效率,因为$('select')总是会搜索DOM。 对于10个条目并不重要,但对于大页面我会尝试从中有效 一开始。
答案 2 :(得分:1)
这是错误的:
var json = [["Deutsch", "de-DE"], ["US Englisch", "en-US"]];
json = JSON.parse(json);
你没有JSON。你有一个数组数组。如果用单引号括起来(即如果它是一个字符串),它只是JSON。
var data = [["Deutsch", "de-DE"], ["US Englisch", "en-US"]];
for(var i=0; i<data.length; i++){
$("#select").append($('<option />',{value: json[i][1], text: json[i][0]}));
}