我需要循环使用jQuery。有时我的查询返回的行多,所以我想检查查询是否返回多行。我想查看所有p
标记中的输出(一个接一个)。我写了代码,它只给出查询的最后一行。如何返回<p>
标记中的所有行?我的代码有什么错误?
<p id="prodDeccarea"> </p>
$("#slsNo").keyup(function () {
$("#hsCode").val(null);
$("#slsiUnit").val(null);
var slsNo = $("#slsNo").val();
$.ajax({
type: 'GET',
url: '${pageContext.request.contextPath}/restservice/ViewProd/' + slsNo,
success: function (result) {
var jString = JSON.stringify(result);
var jdata = JSON.parse(jString);
for (var x = 0; x < jdata.length; x++) {
if (1 < jdata.length) {
var td1 = jdata[x].itemDesc;
var td2 = jdata[x].hsCode;
var td3 = jdata[x].slsiUnit;
$("#prodDeccarea").html("Your product catagory is " + jdata[x].itemDesc + ".");
} else {
var td1 = jdata[x].itemDesc;
var td2 = jdata[x].hsCode;
var td3 = jdata[x].slsiUnit;
$("#hsCode").val(td2);
$("#prodDeccarea").html("Your product catagory is " + td1 + ".");
if (td3 == "1") {
$("#slsiUnit").val("UNIT1");
}
if (td3 == "2") {
$("#slsiUnit").val("UNIT2");
}
if (td3 == "3") {
$("#slsiUnit").val("UNIT3");
}
if (td3 == "4") {
$("#slsiUnit").val("UNIT4");
}
if (td3 == "5") {
$("#slsiUnit").val("UNIT5");
}
if (td3 == "6") {
$("#slsiUnit").val("UNIT6");
}
}
}
}
}
);
});
最佳答案
您的代码中有一些问题
让我们分析一下它们:-)
您正在使用条件,当jdata
中数组for-loop
的长度=== 1时。将该逻辑从for-loop
移到外面。
for (var x = 0; x < jdata.length; x++) {
if (1 < jdata.length) {
^
您将覆盖以前调用函数
.html(...)
的内容。因此,您将丢失以前的HTML。$("#prodDeccarea").html("Your product catagory is " + td1 + ".");
^
您正在对已经为JSON的字符串进行字符串化,只需对其进行解析即可。
var jString = JSON.stringify(result);
^
您有多个条件可以根据tdr3的值设置一个值。只需使用该值并将其设置为元素即可。即:
$("#slsiUnit").val("UNIT" + td3);
if (td3 == "1") { <- Here
$("#slsiUnit").val("UNIT1");
}
if (td3 == "2") { <- Here, and so on
$("#slsiUnit").val("UNIT2");
}
查看这些代码片段以及这些修复程序
$("#slsNo").keyup(function() {
$("#hsCode").val(null);
$("#slsiUnit").val(null);
var slsNo = $("#slsNo").val();
$.ajax({
type: 'GET',
url: '${pageContext.request.contextPath}/restservice/ViewProd/' + slsNo,
success: function(result) {
var jString = JSON.stringify(result);
var jdata = JSON.parse(jString);
if (jdata.length === 1) {
var td1 = jdata[0].itemDesc;
var td2 = jdata[0].hsCode;
var td3 = jdata[0].slsiUnit;
$("#hsCode").val(td2);
$("#prodDeccarea").html("Your product catagory is " + td1 + ".");
$("#slsiUnit").val("UNIT" + td3);
return;
}
for (var x = 0; x < jdata.length; x++) {
var td1 = jdata[x].itemDesc;
var td2 = jdata[x].hsCode;
var td3 = jdata[x].slsiUnit;
var $prodDeccarea = $("#prodDeccarea");
$prodDeccarea.html($prodDeccarea.html() + '<p>' + "Your product catagory is " + jdata[x].itemDesc + "." + "</p>");
}
}
});
});