如何在JavaScript中包含JSON对象,以便函数可以访问它? var myJSONObject={“绑定”:[ {“ircEvent”:“privmg”,“method”:“newURI”,“regex”:“^http://.*”}, {“ircEvent”:“PRIVMSG”,“method”:“deleteURI”,“regex”:“^delete.*.”, {“ircEvent”:“PRIVMSG”,“method”:“randomURI”,“regex”:“^random.*”} ] }; 函数发送(myJSONObject){ var c=document.createElement('div'); var t=document.createTextNode(myJSONObject.bindings[1].regex); c、 儿童(t); 文件.正文.附件(c); }

如何在JavaScript中包含JSON对象,以便函数可以访问它? var myJSONObject={“绑定”:[ {“ircEvent”:“privmg”,“method”:“newURI”,“regex”:“^http://.*”}, {“ircEvent”:“PRIVMSG”,“method”:“deleteURI”,“regex”:“^delete.*.”, {“ircEvent”:“PRIVMSG”,“method”:“randomURI”,“regex”:“^random.*”} ] }; 函数发送(myJSONObject){ var c=document.createElement('div'); var t=document.createTextNode(myJSONObject.bindings[1].regex); c、 儿童(t); 文件.正文.附件(c); },javascript,json,Javascript,Json,我可以通过将JSON对象直接传递到JavaScript函数并将其值作为文本节点的值来访问JSON对象吗?如果没有,我错过了什么?我希望动态创建的div在其文本节点中具有JSON对象的值 您需要使用全局定义的对象或将对象与函数一起传递: 要么: <script type="text/javascript"> var myJSONObject = {"bindings": [ {"ircEvent": "PRIVMSG", "method": "newURI", "regex":

我可以通过将JSON对象直接传递到JavaScript函数并将其值作为文本节点的值来访问JSON对象吗?如果没有,我错过了什么?我希望动态创建的div在其文本节点中具有JSON对象的值

您需要使用全局定义的对象或将对象与函数一起传递:

要么:

<script type="text/javascript">
var myJSONObject = {"bindings": [
    {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},
    {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},
    {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}
]
};

function send(myJSONObject){
    var c = document.createElement('div');
    var t = document.createTextNode(myJSONObject.bindings[1].regex);
    c.appendChild(t);
    document.body.appendChild(c);
}
</script>
</head>
<body>
    <input type="button" value="go" onclick="send();" />
</body>


在代码中,您正在声明一个全局
myJSONObject
,然后声明一个函数参数,也称为
myJSONObject

全局变量可以从函数中访问,除非您使用参数列表中的变量来屏蔽它。然后调用
send
,而不传入任何对象。结果是函数内部可访问的
myJSONObject
,即参数列表中的
null

您可以从
send
中删除参数,只使用全局myJSONObject,或者必须确保在调用
send
时传递它,即
send(myJSONObject)

function send(){
    var c = document.createElement('div');
    var t = document.createTextNode(myJSONObject.bindings[1].regex);
    c.appendChild(t);
    document.body.appendChild(c);
}
<input type="button" value="go" onclick="send();" />
function send(myJSONObject){
    var c = document.createElement('div');
    var t = document.createTextNode(myJSONObject.bindings[1].regex);
    c.appendChild(t);
    document.body.appendChild(c);
}
<input type="button" value="go" onclick="send(myJSONObject);" />