Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery不会在select标记内部追加选项标记_Javascript_Jquery - Fatal编程技术网

Javascript jQuery不会在select标记内部追加选项标记

Javascript jQuery不会在select标记内部追加选项标记,javascript,jquery,Javascript,Jquery,我的JS代码有以下内容 $(document).ready(function () { var newOptions = "{'East': 'first','West': 'second', 'North': 'third'}"; var option = $('#type_form'); option.empty(); $.each(newOptions, function(key, value) { option.append($('&

我的JS代码有以下内容

$(document).ready(function () {
    var newOptions = "{'East': 'first','West': 'second', 'North': 'third'}";
    var option = $('#type_form');

    option.empty(); 

    $.each(newOptions, function(key, value) {
        option.append($('<option></option>').attr('value', value).text(key));
    });
});
HTML格式如下:

<select id="type_form">
    <option value="first">First</option> 
    <option value="second">Second</option> 
</select>
chrome中的JS控制台不会给我带来任何错误。所有选项标记都已删除,但不会被任何内容替换

有什么想法吗?

新选项应该是对象而不是字符串

如果您将其作为字符串,然后使用解析将其解析为对象-对于像IE8这样没有原生JSON支持的浏览器,您必须添加一个类似


您必须解析JSON字符串:

$.each(JSON.parse(newOptions), function(key, value) {

编辑:我的答案假设您的字符串来自其他地方。如果它真的是一个文本,那么最好直接将其作为一个文本对象来编写,如Arun所示

注意,您可以执行:$,{value:value,text:key};嘿,你们给的新选项是字符串,它应该是对象,所以删除引号;
$.each(JSON.parse(newOptions), function(key, value) {