我有一个非常简单的Web应用程序,我遇到了一些麻烦。我有两个文件。
的helloWorld.jsp:
int result = 0;
out.println("<html><body>"+result+"</body></html>");
getHelloWorld.jsp:
<html><head>
<script type="text/javascript>
function getHelloWorld() {
$.get("/helloWorld.jsp, function(data) {
var temp = $.trim(data);
temp = temp.text(); //have also tried temp.html() and a few other things
$('#status').val(temp);
});
}
window.onload = function() {
getHelloWorld();
};
</script></head>
<body><div id='status'></div></body></html>
我的问题是这样的:当我加载getHelloWorld.jsp时,我得不到任何东西(上面的代码没有产生输出),或者我打印出“0”。我想要实现的结果就是在没有HTML标签的情况下打印出“0”。我不能使用简单的查找和替换解决方案,因为我需要这个简单的代码来处理更复杂的响应。我想我可以做正则表达式,但如果已经有一个函数来处理它,我宁愿不重新发明轮子。
是否有任何(简单)方法从AJAX调用中剥离HTML标记,如上所述?
答案 0 :(得分:1)
获取HTML并将其放入jQuery对象(这将导致jQuery将其放入文档片段并解析HTML),然后从jQuery对象中提取文本:
function getHelloWorld() {
$.get("/helloWorld.jsp", function(data) {
var temp = $(data).text();
$('#status').val(temp);
});
}
window.onload = getHelloWorld;
工作演示:http://jsfiddle.net/jfriend00/9hxrqgzn/
如果您只想要一个号码,有人可能会想知道为什么要从服务器返回HTML。也许您应该返回JSON而不仅仅是数字,然后jQuery将为您处理JSON响应,并为您提供所需的数字。
答案 1 :(得分:0)
如果您使用JSP,最好以这种方式包含jsp页面(在服务器端):
<body>
<div id='status'>
<jsp:include page="helloWorld.jsp"/>
</div>
</body>
如果你想使用JS试试这个:
$.get("/helloWorld.jsp", function(data)
{
document.getElementById("status").innerHTML = data;
});
但是如果你想使用JQuery试试这个:
$('#status').load("helloWorld.jsp");
当你包括上面的内容时,它会删除html和body标签。