Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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 使用$each访问Json中的嵌套数组_Javascript_Jquery_Json - Fatal编程技术网

Javascript 使用$each访问Json中的嵌套数组

Javascript 使用$each访问Json中的嵌套数组,javascript,jquery,json,Javascript,Jquery,Json,因此,当json在嵌套数组中时,我在访问json时遇到问题。我以前用一个数组和我的.$将json设置成这样,每个函数都工作得很好。然而,我有麻烦修改它为这个。 Json: { “t内容”:[{ “名称”:“败血症”, “url”:“, “图像”:“, “变体”:[{ “条件”:“社区获得”, “微生物”:“金黄色葡萄球菌”, “抗菌剂”:“氟氯西林”, “替代品”:(非过敏性):“, “注释”:“进行全化粪池检查。” }, { “情况”:“如果怀疑腹腔内来源,则社区获得”, “微生物”:“主要是

因此,当json在嵌套数组中时,我在访问json时遇到问题。我以前用一个数组和我的.$将json设置成这样,每个函数都工作得很好。然而,我有麻烦修改它为这个。 Json:

{
“t内容”:[{
“名称”:“败血症”,
“url”:“,
“图像”:“,
“变体”:[{
“条件”:“社区获得”,
“微生物”:“金黄色葡萄球菌”,
“抗菌剂”:“氟氯西林”,
“替代品”:(非过敏性):“,
“注释”:“进行全化粪池检查。”
}, {
“情况”:“如果怀疑腹腔内来源,则社区获得”,
“微生物”:“主要是革兰氏阴性菌和厌氧菌肠球菌也可能具有特征”,
“抗菌剂”:“复方阿莫西拉韦1.2g静脉注射tds”,
“评论”:“进行全化粪池检查”
}, {
“条件”:“医疗相关”,
“生物体”:“不同”,
“抗菌剂”:“哌拉西林”,
“备选方案”:“咨询顾问微生物学家”,
“评论”:“始终”
}]
}, {
“名称”:“感染性心内膜炎(IE)(待血培养结果)”,
“url”:“,
“图像”:”
}, {
“名称”:“中枢神经系统感染”,
“url”:“,
“图像”:”
}, {
“名称”:“皮肤和软组织感染”,
“url”:“,
“图像”:”
}, {
“姓名”:“患有足部感染的糖尿病患者”,
“url”:“,
“图像”:”
}, {
“名称”:“骨和关节感染”,
“url”:“,

“图像”:“2它不起作用的原因

首先,javascript区分大小写,您的变体不同

子项。条件
在以下情况下失败:

  "Condition":"Community-acquired if intra- abdominal source suspected",
  "Organisms":"Predominantly Gram negatives and anaerobes Enterococci may also feature",
  "Antimicrobial":"Co-amoxiclav 1.2g iv tds",
  "Comments":"Perform full septic screen"
所以把“条件”改为“条件”,等等

第二个原因是

$(info).appendTo(“.menu”);
更改为
$(.menu”).append(info)

为什么?

$(“.menu”).append(info)
只会将字符串粘贴到所选DOM元素中

但是你用

$(信息).
而jquery现在可以做各种新奇的事情

它尝试将其用作DOM选择器,或创建新元素

因为您的信息以

$(info)开头,尝试创建DOM元素并删除所有文本。只保留

,因为br不能包含内容

尝试删除首字母

,您将看到以下错误:

Uncaught Error: Syntax error, unrecognized expression:Community-acquiredStaph. aureusFlucloxacillin...
例如,如果您要键入
$(“hahaha”)
,Jquery将尝试查找标记
,因此当您删除

时,您的
$(信息)
正在查找标记

但是,因为您的字符串将包含像“-()”这样的奇怪字符,所以它将失败。因此出现上述错误

因此,您只能像这样添加html:

$("<span>hahah</span>").appendTo($(".menu"));
$(info).appendTo(“.menu”);
工作时的一个示例是:

$.each(data.tcontent, function(i, item) {
    if(item.Name=='Septicaemia'){
        var search = item.Variations;
        $.each(item.Variations, function(j, subitem) {
            var info = "<p>" + subitem.condition + subitem.organisms + subitem.antimicrobial + subitem.alternative + subitem.comments + "</p>";
            $(info).appendTo(".menu");
        });

    }
});
$。每个(data.t内容,函数(i,项){
如果(item.Name=='败血病〕{
变量搜索=项目变量;
$。每个(项目。变量,功能(j,子项目){
var info=“”+subitem.condition+subitem.organics+subitem.antimicrobial+subitem.alternative+subitem.comments+”

”; $(信息).appendTo(“.menu”); }); } });
使用以下json:


您真的需要使用
$吗。每个
?您可以为(对象中的var键){var item=object[key];}
和数组的标准
语法。变体数组中的第一个对象的属性名都是小写,其余对象的属性名都以大写字母开头。这是在您的真实代码中出现的还是只是复制/粘贴问题?条件到条件我在第一个问题上出现了一个延迟错误,抱歉。我更改了它们,我也更改了您给出的第二个原因,但仍然没有成功。我相信您给出的第二个错误原因实际上是错误的,因为我在一个类似的方法中使用了该语法,该方法仅适用于单个json数组,我对此没有任何问题。这取决于情况,但在这种情况下,没有,因为json不同,您需要仍然要更改json。如果代码保持不变,请将所有firstcase键更改为小写。@Darragh我现在解释了为什么$(info).appendTo();在您的代码大小写中不起作用。并添加了一个工作示例。
$("<span>hahah</span>").appendTo($(".menu"));
$("#myDiv").appendTo($(".menu"));
$.each(data.tcontent, function(i, item) {
    if(item.Name=='Septicaemia'){
        var search = item.Variations;
        $.each(item.Variations, function(j, subitem) {
            var info = "<p>" + subitem.condition + subitem.organisms + subitem.antimicrobial + subitem.alternative + subitem.comments + "</p>";
            $(info).appendTo(".menu");
        });

    }
});