任何人都可以帮助我。如果我的问题或代码不清楚请告诉我,我会简要解释一下。
我正在尝试使用Microsoft转换器翻译页面,但它在Ajax成功中不适用于HTML标记:
由于翻译数据的限制,数据转换工作正常我只是切片元素并转换innerhtml数据,因为Ajax无法附加转换为页面的数据。
任何人都可以帮助我解决我的代码在ajax成功中的错误吗?
$(document).ready(function () {
$('#ContentPlaceHolder1_ddlTranslat').change(function (evt) {
evt.preventDefault();
var authToken = $('#ContentPlaceHolder1_token').val();
var from = 'en';
var to = 'hi';
var chunkdata = [];
var data = $("*");
var len = data.length;
len = len / 2;
len = Math.round(len);
try {
var startlen = 0;
var endlen = 2;
var endadd = 2;
for (var i = 1; i <= len + 1; i++)
{
chunkdata.push(data.slice(startlen, endlen));
startlen = endlen + 1;
endlen = endlen + endadd;
}
}
catch (e) {
throw e;
}
var divsplit = [];
$.each(chunkdata, function (i, val) {
var htmls = '';
$.each(val, function (j, val2) {
htmls = val2.innerHTML;
divsplit.push(htmls);
});
});
$("html").html('');
$.each(divsplit, function (i, val) {
if (divsplit[i] != "") {
var data1 = {
appId: 'Bearer ' + authToken,
contentType: 'text/html',
};
$.ajax({
url: "https://api.microsofttranslator.com/V2/Ajax.svc/Translate?text=" + divsplit[i] + "&from=" + from + "&to=" + to + "",
dataType: 'json',
data: data1,
json: 'oncomplete',
success: function (jqXHR, textStatus, errorThrown) {
var $dom = $(document.createElement("html"));
var appen = $dom.filter('html').append(jqXHR);
},
error: function (jqXHR, textStatus, errorThrown) {
console.log('fail', this, jqXHR, textStatus, errorThrown);
}
});
}
});
});
});
答案 0 :(得分:0)
你试过吗
$(document).createElement("html")
而不是
$(document.createElement("html"))
此外,如果您想使用jquery创建一个可能使用的元素:
$(document).create("html")
答案 1 :(得分:0)
替换它:
success: function (jqXHR, textStatus, errorThrown) {
var $dom = $(document.createElement("html"));
var appen = $dom.filter('html').append(jqXHR);
}
由此:
success: function (jqXHR, textStatus, errorThrown) {
$("html").replaceWith(jqXHR);
}
我在代码中看到的其他几个问题,首先......你错过了appId
。
其次,答案将在JSON
,这意味着您的整个页面可能会换成JSON
字符串。
让我们知道它是否适合您。
答案 2 :(得分:0)
这对你有用
findUsersWhoBookedLastMonth: function(cb){
var dateM30J = moment().subtract(30,'days').format();
console.log(dateM30J);
Reservation.find({
select: ['user'],
where:{
date:{
'>=' : dateM30J
}
},
}, function(err, user_ids) {
if (err) {
console.log('ERROR: ' + err);
cb(err, null)
}
else {
user_ids = _.uniq(user_ids);
cb(null, user_ids)
}
});
},
success: function (jqXHR, textStatus, errorThrown) {
$("html").append(jqXHR);
}
只需设置$("html").html('');
元素的空HTML内容,因此当您添加其他{{1}时,它仍然在DOM中,页面应该只有一个html
元素} element html
它使页面无效,可能导致意外行为