从Ajax调用获取响应文本
问题描述:
我正在尝试将Ajax调用的响应转换为html标签。我正在使用一个tomcat服务器。我能够看到从服务器返回的描述,但我如何得到响应的标签文本。在是我曾尝试:从Ajax调用获取响应文本
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>
答
请将其添加到Ajax调用
success: function(data) {
$('.TypeDesc').each(function(){
$(this).text(data);
});
}
答
你需要给拉布勒一个唯一的ID喜欢id="TypeDesc{i}"
或不同的东西。
所以,你可以参考它是这样的: $('#TypeDesc{i}').text = data.responseText;
答
问题的参数是你告诉你期待的jQuery JSON:
dataType: 'json',
...等它(试图)解析响应为JSON和你擦肩而过的对象,但此时你尝试使用它LIK e原始XHR对象。
如果你想文本,删除dataType
或将其更改为dataType: 'text'
,然后用data
这将是一个字符串。
你的另一个问题是,text
是功能,而不是一个性质,所以你需要呼叫它。
所以:
dataType: 'text',
success: function (data) {
$('.TypeDesc').text(data);
}
+0
@ T.J.Crowder如何为类中的每个项目设置TypeDesc.text目前,它为所有TypeDesc设置第一个值 – devdar 2013-03-12 23:18:55
@拉扎克我怎么可以在类中设置TypeDesc.text每个项目目前其所有TYPEDESC – devdar 2013-03-12 23:18:19
使用设定的第一个值。每个'()'函数,看到更新回答。 – razzak 2013-03-12 23:53:14
它仍然将标签的所有值设置为第一个值。我需要访问$(this).text的索引 – devdar 2013-03-13 02:53:23