我试图将Ajax调用的响应转换为html标签。我正在使用tomcat服务器。我能够看到从服务器返回的描述但是如何将响应转换为标签文本。 Under是我试过的:
Jquery的
function GetDescription(Id){
$.ajax({
type:'GET',
url:'getDescription.htm',
data:{dId:Id},
dataType: 'json',
success: function (data) {
$('.TypeDesc').text = data.responseText;
}
});
}
$(document).ready(function() {
$(".photos").each(function(i){
if ($(this).val() != '') {
var image = new Image();
image.src = $(this).val();
image.onload = function(){
var typeId = document.getElementsByClassName("TypeId")[i].value;
GetDescription(typeId);
var ctx = document.getElementsByClassName("canvas")[i].getContext('2d');
ctx.drawImage(image,0,0, 320, 240);
}
}
});
});
HTML
</head>
<body>
<div id ="content">
<c:forEach items="${object}" var="i">
<div id="table">
<div>
<p><canvas class="canvas" height="240" width="320"></canvas>
</div>
<a href="registration.htm">Name:- ${i.fName} ${i.lName}</a>
<input type="hidden" id="photo" value="${i.photo}" class="photos"/>
<input type="hidden" id="Number" value="${i.Number}" />
<input type="text" class="TypeId" value="${i.citizenTypeId}"/>
<label class="TypeDesc"></label>
</div>
</c:forEach>
</div>
</body>
</html>
答案 0 :(得分:3)
问题是你告诉jQuery你期待JSON:
dataType: 'json',
...所以它(尝试)将响应解析为JSON并传递给您一个对象,但之后您尝试将其用作原始XHR对象。
如果您需要文字,请移除dataType
或将其更改为dataType: 'text'
,然后使用data
这将是一个字符串。
您的另一个问题是text
是功能,而不是属性,因此您需要调用。
所以:
dataType: 'text',
success: function (data) {
$('.TypeDesc').text(data);
}
答案 1 :(得分:1)
请将此添加到ajax调用的参数
success: function(data) {
$('.TypeDesc').each(function(){
$(this).text(data);
});
}
答案 2 :(得分:0)
您需要为标签指定一个唯一的ID,例如id="TypeDesc{i}"
或其他不同的ID。
所以你可以这样说:
$('#TypeDesc{i}').text = data.responseText;