在我的代码中,我将get请求发送到一个站点,有时返回的字符串如HTML上方的顶部,导致jQuery错误
例如
4341-b087-58848cd597a7%26mode%3d%26code%3d500|<div>Div</div>
哪会导致
Uncaught Error: Syntax error, unrecognized expression: 4341-b087-58848cd597a7%26mode%3d%26code%3d500|jquery.js:1473 Sizzle.errorjquery.js:2087 Sizzle.tokenizejquery.js:2488 Sizzle.selectjquery.js:879 Sizzlejquery.js:2704 jQuery.fn.extend.findjquery.js:2821 jQuery.fn.initjquery.js:73 jQuerygear.js:26 (anonymous function)gear.js:21 (anonymous function)jquery.js:3119 firejquery.js:3231 self.fireWithjquery.js:9275 donejquery.js:9685 callback
每次琴弦都有共同点;它们都以4
开头,以%26mode%3d%26code%3d500|
如何检查文本%26mode%3d%26code%3d500|
是否在页面中,如果是,请删除从4
到%26mode%3d%26code%3d500|
(包括那些)的所有内容,以便它不会出错?
我的代码是这样的
$.get(url).done(function(data) {
callback(data.replace(/img/gi, "flip");
}
谢谢!
答案 0 :(得分:2)
您可以使用正则表达式:
data = data.replace(/^4.*%26mode%3d%26code%3d500\|/, '');
或者你可以将整个事物包装在DIV中:
var Item = $('<div>', { html: data }).find("#ct100").attr("href");
答案 1 :(得分:0)
如果字符串位于响应的开头,则简单&amp;快:
$.get(url).done(function(data) {
data = data.split('%26mode%3d%26code%3d500|')[1];
}
答案 2 :(得分:0)
你甚至可以使用javascript string
函数来摆脱这个:
var pos = data.lastIndexOf("%26mode%3d%26code%3d500|");
var reqPos = pos + 24; //last position of above string + number of chars in above string
var result = str.slice(reqPos);
alert(result); //will give you expected output