问题描述
- 使用js向页面中插入html,代码定义在变量中,但是执行的时候提示变量未定义,变量都打印的出来。
-
var test=text.html;这个text.html是json格式的获得json中的html值
alert(test);
$('#login').html(test);
这个图片是我的代码,下面这个js是远程返回一个调用js函数,内容是ajaxload({"html":"xxx"});xxx就是我上面截图打印出来的
解决方案
你应该是执行到else语句去了吧。。执行到else语句肯定出错了。以后要发代码。。截图还得打一次代码
setTimeout改成这样,你那样你的test需要为window作用域下的才行
else setTimeout(function(){$('#login').load(test)},1000)
解决方案二:
$('#login').html(test);你确认是这句而不是其他的?你上面那句能输出,下面不会,会出出错的。你的login对象有更新没?
解决方案三:
你的text是本地的还是远程返回的请求结果,如果text只是json字符串,需要转换成对象。比如JSON.parse(text)或者jQuery.parseJSON(text),如果只是测试的话,可以使用eval('('+text+')')
解决方案四:
你的text是本地的还是远程返回的请求结果,如果text只是json字符串,需要转换成对象。比如JSON.parse(text)或者jQuery.parseJSON(text),如果只是测试的话,可以使用eval('('+text+')')
解决方案五:
你的问题很有可能就是json字符串没有转换为json对象的问题。
你可以点击在线演示
var html就是你贴出来图片的html片段 (我把你的html片段注释了,因为觉得有点乱。我重新写了个html,把html和css以及事件尽量分离,如果你想测试你的html,你可以取消第一行的注释,然后把3-6行和15-19行注释掉)
在演示代码里面,可以正常登录和注册代码插入页面,在右上角可以看到,但是如果注释掉第11行,即text = JSON.parse(text);结果就是undefined。你自己可以在页面上面注释,然后点击页面左上角的Run运行看看结果。
时间: 2024-12-29 10:28:11