Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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字典打印到div中_Javascript_String_Dictionary - Fatal编程技术网

将JavaScript字典打印到div中

将JavaScript字典打印到div中,javascript,string,dictionary,Javascript,String,Dictionary,我有一个JavaScript映射,看起来像这样 var code = {'as':'','db':'','id3':'','term':''}; 例如,要将打印为到一个div中。如果我这样做,我会在div中得到“Undefined”。据我所知,这意味着值本身是未定义的。如何“预定义”空字符串 更新: 因为似乎有很多混淆:如果我使用上面的代码将代码[1]放入div中,div包含“Undefined” 更新: 标记如下所示 <div id="cont" class="diff">

我有一个JavaScript映射,看起来像这样

var code = {'as':'','db':'','id3':'','term':''};
例如,要将
打印为
到一个div中。如果我这样做,我会在div中得到“Undefined”。据我所知,这意味着值本身是未定义的。如何“预定义”空字符串

更新:

因为似乎有很多混淆:如果我使用上面的代码将代码[1]放入div中,div包含“Undefined”

更新:

标记如下所示

<div id="cont" class="diff">
    <div id="editor">
        <div id="funcRow">
            <ul>
                <li><a onclick="changeTab(0)">Settings</a></li>
                <li><a onclick="changeTab(1)">Knowledge</a></li>
                <li><a onclick="changeTab(2)">Layer 4</a></li>
                <li><a onclick="changeTab(3)">Hardware</a></li>
            </ul>
        </div>
        <div id="text" contenteditable=true>
        </div>
    </div>
</div>

下面的代码应该是自解释的,只是在输出之前进行字符串化

var div=document.getElementById('test');
变量代码={'as':'','db':'','id3':'','term':''};
div.innerHTML=''+JSON.stringify(代码,null,4)+''

类似这样,但由于值为“nothing”,因此输出为“nothing”

var div=document.getElementById('test');
变量代码={'as':'','db':'','id3':'','term':''};
//代码['as']=“你好,世界”//联合国发表评论
div.innerHTML='['+代码['as']+']

尝试在
循环中使用
for.,
.innerHTML
;使用
break
在打印到
div的
as
属性之后停止循环

/“predefine”空字符串,带有'1','2','3','4`
变量代码={'as':'1','db':'2','id3':'3','term':'4'};
var div=document.querySelector(“div”);
for(代码中的var prop){
如果(道具==“作为”){
div.innerHTML+=代码[prop];
打破
}
}

问题是我试图调用code[i],这在JavaScript中是不可能的。“Undefined”弹出,因为JS试图计算键的值,而键一开始不存在。

空字符串“predefine”d将是什么?您可以添加代码以显示
中的值吗?看起来您应该使用数组,因为您假设有顺序,而对象没有顺序。“如果我这样做,我会在div中得到‘Undefined’。”
activeTab
出现
Undefined
?尝试定义
activeTab
,最初,在
changeTab
之外;例如,
var-activeTab=“as”
;尽管仍然将索引而不是属性名传递给
changeTab
,但您可以使用
来(代码中的var prop)
来迭代映射的键。但是,不能保证返回道具的顺序。我想你误解了我的意思。我想将'as'的值打印到div中,比如div.innerHTML=code['as']@Jouh-有点故意,因为你不太清楚,但我添加了一个只获取对象值的选项。好吧,如果我的问题不准确,我很抱歉。我确实希望能够迭代数组,但据我所知,这样迭代是不可能的,因此会产生所描述的不想要的行为。另请参见wi上的
code.as的sdom与
code['as']
为什么需要
,请将其删除。编辑:更改为使用'['和']“把这个值括起来,因为它什么都没有,因此很难看到发生了什么。是的,这是我放弃的答案,尽管我目前正在寻找解决这一切的方法。我主要想知道这个未定义的东西是从哪里来的,如果不够清楚,我想道歉。如果你找到了,让世界其他人知道……)为什么要遍历所有属性并检查键是否为
as
。只需使用
code.as
。很简单!@Tushar好吧,问题,预期结果在开始时并不完全清楚?特别是在“如何”预定义“空字符串?”@guest271314手头的问题太复杂了,但是
对于(代码中的var prop)来说
对于提问者来说可能是一件有用的事情。@JohnHascall手边的问题仍然不清楚,在这里。“我如何”预定义“空字符串?”不再是问题的一部分了吗?我假设他问的是如何在
code['as'中输入值
正如我在回答中的评论一样,但考虑到我的英语水平不高,我很容易出错。。。
function changeTab(i) {
    code[activeTab] = document.getElementById("text").innerHTML;
    document.getElementById("text").innerHTML = code[i];
    document.getElementsByTagName("ul")[0].getElementsByTagName("li")[i].getElementsByTagName("a")[0].className="active";
    document.getElementsByTagName("ul")[0].getElementsByTagName("li")[activeTab].getElementsByTagName("a")[0].className="";
    activeTab = i;
}