检查子数组的最后一个元素时出现问题

时间:2018-08-17 06:18:45

标签: javascript jquery

我有这样的json格式的数据

        {
           feild: ...
           ...
            "transport_details": [
                       {
                       "allotment_id": ObjectId("5b755710d2ccda0978005d6e"),
                       "status": "Active"
                       },
                       {
                         "allotment_id": ObjectId("5b755710d2ccda0978005d6e"), 
                        "status": "Inactive"
                       }
                    ]
        }

我已经在Java脚本函数下面编写了

            function checkIfInActive(transportAllotment, id)
        {
            if (transportAllotment.length == 0)
            {
                   return  '<div class="checkbox checkbox-success">' +
                        '<input class="commoncheckbox" type="checkbox" id="studentId_-' + id + '' +
                        '" name="studentId_-' + id + '" value="' + id+ '"' +' >' + '<label></label></div>';
            }
            else
            {
                 var max = transportAllotment.length-1;

                 var status = transportAllotment[max]["status"];

                 if(status != "Active")
                 {
                      return  '<div class="checkbox checkbox-success">' +
                        '<input class="commoncheckbox" type="checkbox" id="studentId_-' + id + '' +
                        '" name="studentId_-' + id + '" value="' + id+ '"' +' >' + '<label></label></div>';
                 }
                 else
                 {
                     return '<div class="checkbox"><input class="disabled-check" type="checkbox" disabled><label></label></div>';
                 }
            }
        }

如果子数组transport_details的最后一个元素的状态为Inactive,我正在尝试使用commoncheckbox类返回html。在这种情况下,以上方法不会返回带有class commoncheckbox的复选框。

请帮助!!!

2 个答案:

答案 0 :(得分:1)

如果状态为非活动状态,它将进入此块内。 似乎当前的html文字有些混乱。您可以使用以反引号(`)开头的template literals避免与引号混淆

if (status != "Active") {
  return `<div class="checkbox checkbox-success">
          <input class="commoncheckbox" type="checkbox" id="studentId_${id}"
          name="studentId_-${id}"
          value="${id}">
          <label></label>
          </div>`;
}

答案 1 :(得分:1)

var myObj = {
    "aaa":"zzzz",
    "bbb":23,
    "transport_details":[ 
    	{
				"status": "Active"
    	},
      {
      	"status": "Inactive"
      }
    ]
 } 


var status = myObj.transport_details[myObj.transport_details.length - 1].status;

var html = (status === "Active")? '<input type="checkbox">' : '<input type="checkbox" disabled>' ;

$('#banner-message').html(html);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<div id="banner-message">
 
</div>