$("#autoNames").html(function (index, html) {
var begin = "<script language='javascript' type='text/javascript'> var names = [";
var end = String('];' + '<' + '/' + 'script' + '>');
var result = begin.concat(jsonService, end);
$("#autoNames").html(result);
return false;
});
我无法弄明白为什么这不起作用。我之前已经使用了html函数,但由于某些原因,这只是让我的autoNames标记为空...我在结果变量上调用了一个alert()并且该字符串中存在的东西...任何线索?
由于
答案 0 :(得分:2)
当您将函数传递给.html()
时,该函数需要返回您想要设置的内容,如下所示:
$("#autoNames").html(function (index, html) {
var begin = "<script type='text/javascript'> var names = [";
var end = String('];' + '<' + '/' + 'script' + '>');
return begin.concat(jsonService, end);
});
目前,您正在设置.html()
但正在返回false
,并且外部.html()
调用将其设置为空。或者,只是这样做,因为你正在处理一个元素:
var begin = "<script type='text/javascript'> var names = [";
var end = String('];' + '<' + '/' + 'script' + '>');
$("#autoNames").html(begin.concat(jsonService, end));
答案 1 :(得分:1)
很想知道你在这里想做什么......无论如何:
$("#autoNames").html('<script>var names = [' + jsonService + '];</script>');
答案 2 :(得分:0)
将函数传递给html
方法时,应该返回元素应该设置的HTML。我没有看到任何理由为什么你需要首先使用那个重载(它是根据集合中的每个元素动态生成内容);你可能只想使用该函数中的代码:
var begin = "<script language='javascript' type='text/javascript'> var names = [";
var end = String('];' + '<' + '/' + 'script' + '>');
var result = begin.concat(jsonService, end);
$("#autoNames").html(result);
答案 3 :(得分:0)
我遗漏了什么,或者你只是把JS数组放在那个div中? 看起来你需要为每个或类似的做一些来获取数组值并将它们放在html中。
也许只是因为我错过了一些细节,但看起来很奇怪。
那个jsonService真的是个json吗?如果是,那么你需要:
var jsonObj = eval("("+jsonService+")");
然后像这样访问它的值:
alert(jsonObj.valueName);