以下代码是我的实现中ajax调用的响应。
/* response of ajax call */
<script> var count = 6; </script>
<div> some code goes here</div>
如何从jquery
中的ajax响应中获取上述计数值 $.ajax({
url: url,
type: "GET",
dataType: "text",
timeout: 20000,
success: function(response){ },
error: function(){/* error code goes here*/}
});
答案 0 :(得分:1)
尝试更改服务器发送Ajax响应的方式,例如使用JSON:
{
"data": {
"count": 6
},
"html": "<div>some code goes here</div>"
}
然后使用此脚本访问计数器:
$.getJSON({
url: url,
timeout: 20000,
success: function(response) {
console.log(response.data.count);
},
error: function() {/* error code goes here*/}
});
答案 1 :(得分:0)
如果您必须接受上述字符串形式的返回值并从中提取计数值,则RegExp会保存当天:
var COUNT_DIGIT_EXPRESSION = /count\s?=\s(\d+);/i;
$.ajax({
url: url,
type: "GET",
dataType: "text",
timeout: 20000,
success: function(response){
var countMatch = response.responseText.match(COUNT_DIGIT_EXPRESSION);
var countInt;
// Return val from match is array with second element being the matched
// capturing subgroup (\d+), which is the digit or digits themselves.
if (countMatch && countMatch.length == 2) {
countInt = parseInt(countMatch[1], 10);
}
console.log('Count value is ' + countInt);
},
error: function(){/* error code goes here*/}
});
答案 2 :(得分:0)
您的回复的全文如下:
<script> var count = 6; </script> <div> some code goes here</div>
使用此代码获取指定标记之间的结果:
var resultmatch = xmlHttpReq.responseText.match(/<script>(.*?)<\/script>/);
如果你那么:
echo resultmatch;
它会输出:
var count = 6;
= = =
但是既然你想要count的值,那就用一个语句来做:
eval(xmlHttpReq.responseText.match(/<script>(.*?)<\/script>/));
这将导致在您的html页面中显示JavaScript, var count = 6; ,就好像它已被输入为代码一样。现在你有一个名为 count 的变量,你可以随意使用它。
如果你那么:
echo count;
它会输出:
6
当然,您可以在续续的JavaScript中使用变量 count 来使用其值。