0

我正在尝试将 Ajax 调用的响应转换为 html 标签。我正在使用tomcat服务器。我可以看到从服务器返回的描述,但是我如何将响应获取到标签文本中。下面是我尝试过的:

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>
4

3 回答 3

3

问题是你告诉 jQuery 你期待 JSON:

dataType: 'json',

...因此它(尝试)将响应解析为 JSON 并向您传递一个对象,但随后您尝试像使用原始 XHR 对象一样使用它。

如果您想要text,请删除dataType或将其更改为dataType: 'text',然后使用datawhich 将是一个字符串。

你的另一个问题是它text是一个函数,而不是一个属性,所以你需要调用它。

所以:

dataType: 'text',
success: function (data) {

    $('.TypeDesc').text(data);

}
于 2013-03-12T22:36:09.400 回答
1

请将此添加到ajax调用的参数中

    success: function(data) {
        $('.TypeDesc').each(function(){
            $(this).text(data);
        });
    }
于 2013-03-12T22:33:58.267 回答
0

您需要为标签提供一个唯一的 ID,例如id="TypeDesc{i}"或不同的东西。

所以你可以这样引用它: $('#TypeDesc{i}').text = data.responseText;

于 2013-03-12T22:32:23.683 回答