我正在尝试将我们当前的 javascript 框架转换为 jQuery,因为我们需要 jQuery 的附加功能来进行进一步的项目。到处都有一个特定的功能(它是如何设置的……),我想用等效的 jQuery 覆盖它。这是对 php 页面进行 ajax 调用的原始 Javascript 函数。
function ajax(n,f,v){
var ajaxRequest;
if(window.XMLHttpRequest){// code for IE7+, Firefox, Chrome, Opera, Safari
ajaxRequest=new XMLHttpRequest();
}
else{// code for IE6, IE5
ajaxRequest=new ActiveXObject("Microsoft.XMLHTTP");
}
ajaxRequest.onreadystatechange=function(){
if(ajaxRequest.readyState==4 && ajaxRequest.status==200){
//This is where the result is stored
result = ajaxRequest.responseText;
//parseScript pulls out the content and the div and populates the div with the retrieved content.
parsed_result = parseScript(result);
document.getElementById(parsed_result.div).innerHTML = parsed_result.source;
}
}
ajaxRequest.open("GET","view.php?n="+n+"&f="+f+"&v="+v+"&time="+(new Date).getTime(),true);
ajaxRequest.send();
}
function parseScript(_source) {
var source = _source;
var scripts = new Array();
while(source.indexOf("<script") > -1 || source.indexOf("</script") > -1) {
var s = source.indexOf("<script");
var s_e = source.indexOf(">", s);
var e = source.indexOf("</script", s);
var e_e = source.indexOf(">", e);
scripts.push(source.substring(s_e+1, e));
source = source.substring(0, s) + source.substring(e_e+1);
}
for(var i=0; i<scripts.length; i++) {
try {
eval(scripts[i]);
var div = div;
}
catch(ex) {
}
}
return {source: source, div: div};
}
这是刚刚检索到的页面顶部(因此是 parseScript 函数)。这个 div 变量告诉在哪里放置检索到的内容。
<script>
var div = 'content_1';
</script>
<!-- some retrieved html -->
我只想“设置在”javascript 函数之上的 jQuery 函数将要求我根本不编辑检索 ajax 文件。请参阅下文,了解我对 jQuery 调用的尝试。
function jAjax(n,f,v) {
$.get('view.php', 'n='+n+'&f='+f+'&v='+v, function(result) {
if(result) {
if($('#'+result.div).length) {
$('#'+result.div).html(result);
} else {
console.log("Couldn't find the div= "+result.div);
}
} else {
console.log("Couldn't find the names for n="+n+' f='+f+' v='+v);
}
});
}
所以我的问题是如何使用 jQuery 从 ajax 调用中捕获变量,以便我可以使用检索到的 html 填充捕获 div?
另一件事,是的,除了这样做之外,我还可以想出很多方法来做到这一点,但是对于我到达这里时已经设置好的当前框架,这种方法是最简单的。因此,请仅建议从 ajax 脚本中检索变量的方法。非常感谢!