我有一个网页,其中我放置了我的webservice任务的状态。它看起来像这样:
<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>
渲染后我得到了这个:
<body>
<div id="size">
100
</div>
<div id="isRunning">
false
</div>
<div id="intIsRunning">
0
</div>
<div id="status">
0
</div>
</body>
size
是作业的大小,可以是任何int值。 isRunning
为true
或false
,intIsRunning
为1
或0
。 status
是完成工作的百分比。
我希望能够获取这些ID的内容并将其放入我的其他网页上的js变量中,但我并不是自己的爱好者。 现在我有这个:
$(document).ready(function() {
$('.progress .bar').progressbar();
var fetch = setInterval(loadStatus, 500);
var isRunning;
function loadStatus() {
$.get('/status #intIsRunning', function (data) {
console.log(data);
console.log("!");
console.log("--->("+$(data).index("#status")+")");
});
isRunning = 0;
console.log(">>" + isRunning);
// console.log($('.progress .bar').prop(['data-transitiongoal']));
// $('.progress .bar').prop(['data-transitiongoal']).load('/status #status');
// $('.progress .bar [data-transitiongoal]').load('/status #status');
// $('.bar').attr('data-transitiongoal', i.toString());
// console.log("progress: "+progress);
if (isRunning == 0) {
clearInterval(fetch);
}
}
});
只要running为true,此脚本应查询我的状态页面以获取上述值并将状态放入我的进度条。如果运行为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>
我将在本周晚些时候检查发布的答案。
答案 0 :(得分:0)
如果你尝试这样的话怎么办?
$(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 = parseInt(status, 10)
转换为数字,或使用isRunning = (isRunning != 'false')
转换为布尔值。请注意,使用javascript的隐式类型转换时,通常不需要这样做。