Javascript js正在将远程div内容获取到变量中
我有一个网页,我把我的Web服务任务的状态。看起来是这样的:Javascript js正在将远程div内容获取到变量中,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我有一个网页,我把我的Web服务任务的状态。看起来是这样的: <body> <div id="size"> <c:out value="${size}"/> </div> <div id="isRunning"> <c:out value="${isRunning}"/> </div> <div id="intIsRunning">
<body>
<div id="size">
<c:out value="${size}"/>
</div>
<div id="isRunning">
<c:out value="${isRunning}"/>
</div>
<div id="intIsRunning">
<c:out value="${intIsRunning}"/>
</div>
<div id="status">
<c:out value="${status}"/>
</div>
</body>
$(document).ready(function() {
var fetch = setInterval(loadStatus, 500);
$('.progress .bar').progressbar();
function loadStatus() {
$.get('/status', function (data) {
var $data = $(data), //turn ajax response (string) into JQuery collection
isRunning = $data.find('#isRunning').text(),
intIsRunning = $data.find('#isRunning').text(),
size = $data.find('#isRunning').text(),
status = $data.find('#isRunning').text();
//Do something with the variables
if (isRunning == 0) {
clearInterval(fetch);
}
});
}
});
只要running为true,该脚本就应该在我的状态页面中查询上述值,并将状态放入我的进度条中。如果running为false,这个脚本应该停止,但现在我无法提取这些变量。有人能提供帮助吗?
编辑:
我是这样做的:
<script type = text/javascript>
$(document).ready(function () {
$('.progress .bar').progressbar();
var fetch = setInterval(loadStatus, 500);
var isRunning;
var status;
function loadStatus() {
$.get('/status', function (data) {
var remoteContent = $(data);
isRunning = parseInt($(remoteContent[11]).html());
status = parseInt($(remoteContent[13]).html());
if (isRunning == 0) {
status = 100;
clearInterval(fetch);
$("#progBar").hide();
$("#buttonDiv").hide();
$("#succesMessage").show();
//location.reload();
}
$('.progress .bar').attr("data-transitiongoal", status.toString()).progressbar();
console.log("isRunning: " + isRunning + " status: " + status + "%");
});
}}
);
</script>
我将在本周晚些时候查看发布的答案 如果您尝试这样的方法会怎么样:
<body>
<div id="size">
<c:out value="${size}"/>
</div>
<div id="isRunning">
<c:out value="${isRunning}"/>
</div>
<div id="intIsRunning">
<c:out value="${intIsRunning}"/>
</div>
<div id="status">
<c:out value="${status}"/>
</div>
</body>
$(document).ready(function() {
var fetch = setInterval(loadStatus, 500);
$('.progress .bar').progressbar();
function loadStatus() {
$.get('/status', function (data) {
var $data = $(data), //turn ajax response (string) into JQuery collection
isRunning = $data.find('#isRunning').text(),
intIsRunning = $data.find('#isRunning').text(),
size = $data.find('#isRunning').text(),
status = $data.find('#isRunning').text();
//Do something with the variables
if (isRunning == 0) {
clearInterval(fetch);
}
});
}
});
注意,变量都是字符串。您可以使用status=parseIntstatus转换为数字,也可以使用isRunning=isRunning!='例如,false。请注意,对于javascript的隐式类型转换,这通常是不必要的。您的loadStatus函数永远不会被调用。“获取url”的空间和哈希似乎无效??要读取div的内容并获取其文本,可以使用myText=$divstatus.text为什么您认为从未调用过它?我从里面得到日志。我以为get/url divFromUrl会给我这个div的内容。它每500毫秒被调用一次:var fetch=setIntervalloadStatus,500@SokPomaranczowy,只有load函数通过在URL参数中提供选择器来支持页面片段的加载,get没有这样的支持。哦,对不起,我错过了。我的错@GET用于使ajax调用在页面中加载外部资源,而不是从DOM中选择元素。api.jquery.com/jquery.get/