我有一个返回的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);
}

07-24 09:38
查看更多