使用JavaScript插入HTML实体的问题

我有以下JS来动态更改表单内的HTML选择列表的内容:
<script type="text/javascript">

var provincias = [];

provincias['bsas'] = new Array('Capital Federal','San Martin','Quilmes');
provincias['cba'] = new Array('C&acute;rdoba','La Carlota','Rio Cuarto');
provincias['nqn'] = new Array('Neuqu&eacute;n','Cipolletti','Plottier');

function setLoc() {
    provSel = document.getElementById('provincia');
    locList = provincias[provSel.value];
    updateLista('localidad', locList, locList);
}

function updateLista(fieldID, newOptions, newValues) {
    selectField = document.getElementById(fieldID);
    selectField.options.length = 0;
    for (i=0; i<newOptions.length; i++) {
    selectField.options[selectField.length] = new Option(newOptions[i], newValues[i]);
    }
}

</script>
列表是:
<select name="provincia" id="provincia" onchange="setLoc();">
    <option value="bsas">Buenos Aires</option>
    <option value="cba">C&oacute;rdoba</option>
    <option value="nqn">Neuqu&eacute;n</option>
</select>

<select name="localidad" id="localidad">
    <option value="">Seleccione una localidad</option>
</select>
它工作正常,但我不明白为什么原因JavaScript插入的实体的输出是文字的:在borwser中你看到
&aacute;
而不是&aacute;。更糟糕的是,如果我通过特殊字符更改实体,浏览器会显示一个奇怪的问号(?)符号,这是我开始使用实体的原因。 有谁知道是否有解决这个问题的捷径(比如一个特殊的JS角色景观)?或者我应该使用innerHTML重新构建我的脚本以显示输出? 还有一件事:请记住,这是一个小列表,但是这个脚本将适用于加载来自XML文档的表单数据,其中包含大约4000个条目(我国家的州和城市的完整列表)。我将使用MySQL数据库来存储表单数据。这对我来说就像是一场charset噩梦...... 顺便说一句:我在没有BOM的utf8中编码(现在我写这个我认为这是问题......)。 干杯,并提前感谢大家的好心思。     
已邀请:
似乎javascript将选项文本视为明文,因此您确实必须使用innerHTML,如下所示:
function updateLista(fieldID, newOptions, newValues) {
selectField = document.getElementById(fieldID);
for(i=0; i<newOptions.length; i++) {
    selectField.options[i] = new Option();
    selectField.options[i].innerHTML = newOptions[i];
    selectField.options[i].value = newValues[i];
    }
}
PS。你的'cba'数组的第一个值应该是
'C&oacute;rdoba'
而不是
'C&acute;rdoba'
    

要回复问题请先登录注册