我有一个返回的JSON字符串,我已经对其进行解析并将其放入数组中,然后进行格式化以放入选择下拉列表中:
function populateGroups(){
var categories = '';
for( category in gCategories ){
categories += '<option name="' + gCategories[category] + '">' + gCategories[category] + '</option>';
categories.replace(' ', '_');
}
$('select[name="category"]').html(categories);
}
我遇到的问题是,选项名称(与值相同)包含需要用有效的内容替换的空格,例如下划线'_'。
这就是为什么我尝试进行category.replace('','_');的原因。我也尝试过使用regex进行此操作,尽管我的RegEx不太好:P
关于如何完成的任何想法?
谢谢!
[注意]
这是JSFiddle:http://jsfiddle.net/pKYr4/
最佳答案
您还应该更新字符串。
categories = categories.replace(/ /g, '_');
...一个问题是,不仅值会被格式化/修整,因为
<option name="...
也将受到影响。<option_name="category_value">category_value</option>
这可以通过这种方式解决。
function populateGroups() {
var categories = '';
for( c in gCategories ) {
var categoryValue = gCategories[c].replace(/ /g, '_');
categories += '<option name="' + categoryValue + '">' + gCategories[c] + '</option>';
}
$('select[name="category"]').html(categories);
}