如何从<script>标记内的AJAX响应字符串中读取变量?</script>

时间:2012-03-20 17:51:40

标签: jquery html ajax

我有一个AJAX请求,它将返回一个包含一些HTML代码的字符串:

返回的值是一个非常大的字符串,如下所示:

</div></div>
<script type="text/javascript">
    var bld=[{"stufe":7,"gid":"4","aid":"18"}]
</script>
<div id="map_details">< div class="movements">...

我需要的唯一部分是bld标记内的变量<script>

我在我的脚本中使用jQuery,但是,因为evals ajax响应中的每一段<script>代码,我不得不使用另一个AJAX方法返回带有{{{ 1}}标签就可以了......

我认为这可能有两个解决方案:

  1. 如果jQuery AJAX函数<script>是html响应中的脚本代码,我怎样才能访问该变量的值?

    我已经尝试过,但evals函数中的变量bld未定义。

  2. 当我在html字符串中包含该值时,有没有办法使用javascript或jquery来获取ajax.success标记内的变量?

1 个答案:

答案 0 :(得分:3)

您需要将返回的数据加载到DOM中。然后它将被解析,javascript将运行,变量将在全局范围内。如果您不想看到所有其他内容,可以在隐藏的div中执行此操作。

success: function(data) {
             $('#hiddendiv').html(data);
             console.log(bld); // <== bld is eval'ed and in global scope
         },

这不是你想要的吗?

演示:http://jsfiddle.net/jtbowden/GZvG9/1/