javascript - jquery 中的 for 循环 <p> 标签

标签 javascript jquery html ajax loops

我需要使用 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");
                    }
                }
            }
        }
    }
    );
});

最佳答案

您的代码存在一些问题

让我们分析一下:-)

for 循环 中数组 jdata 的长度 === 1 时,您使用了一个条件。将该逻辑从 for 循环 移出。

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>");
      }
    }
  });
});

关于javascript - jquery 中的 for 循环 <p> 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48607385/

相关文章:

javascript - Node Canvas : output PNG file as interlaced/progressive

javascript - 输入文本字段触摸后调用相同的功能

javascript - JS/JQuery - 选中所有复选框

html - 盒子阴影右侧从其容器中掉出

html - 悬停时图像 + 翻转淡入淡出的问题

javascript - 在 setinterval 中使用长间隔时,Node.js 崩溃

javascript - 如何添加单击事件以将您带到幻灯片上的某个图像

javascript - 在 Jquery 或重复代码中将列表作为参数传递

javascript - 使用未转义的 HTML 以字符串形式获取元素的内容

javascript - Jinja、Flask 和 CanvasJS 不显示图表