0

我需要对我继承的代码块做一个小的行为改变,不幸的是,这个设置是一个非常大的函数,它正在构建一个 html 模板并且其中包含大量的 for 循环。

目前,模板函数中有一个部分,其中循环生成 4 个文本输入,其中包含一个包含<div>提交按钮。我想做的是,如果在这个特定区域有两个以上输入的情况下,将两个放在一个<div>带有 subit 的内部,然后将另外两个放在另一个带有自己提交的 div 中,所以基本上是拆分他们起来。这是我要实现的目标的快速且(非常)肮脏的视觉示例。

http://jsbin.com/izejin/5/

下面是生成单个 4 个输入的电流循环<div>。我的想法是,我需要设置一个计数器,当 === 2 时,它将创建具有新类的新 html 元素,这些新类将根据需要设置它们的样式。但我不确定如何在保持循环继续进行的同时实现这一目标。

if (measurementTypeGroup.MeasurementTypes.length > 1) {

    newNodeHtml += "<div id='" + measurementClass + "-3-" + measurementTypeGroup.MeasurementTypes[0].TargetConfigure[0].TargetType + "' class='target-metric input " + measurementClass + "-input'>";

    for (var k = 0; k < measurementTypeGroup.MeasurementTypes.length; k++) {
        var mType = measurementTypeGroup.MeasurementTypes[k];
        var userTarget = mType.UserTarget;
        var targetConfigure = mType.TargetConfigure[0]; 

        newNodeHtml += "<div><span>" + mType.MeasurementTypeName + " TARGET</span>" +
                    "<input type='text' id='txt-" + measurementClass + "-3-" + mType.MeasurementTypeID + "' placeholder='" + mType.UnitName + "' value='" + targetHighValue + "' " + disableAttribute + "></div>";
    }

    newNodeHtml += "<a onclick='CellClicked(" + mTypeGroupID + ", 3, 3)'><span class='check-range'></span></a>" +
            "</div>";
}

谢谢你的帮助!

4

1 回答 1

1

这应该可以满足您的需要,它是一个嵌套loop的 anumber of loops和 anindex

if (measurementTypeGroup.MeasurementTypes.length > 1) {
    var index = 0;
    var numberOfLoops = Math.ceil(measurementTypeGroup.MeasurementTypes.length / 2);
    for (var i = 0; i < numberOfLoops; i++) {
        var newNodeHtml = '';
        newNodeHtml += "<div id='" + measurementClass + "-3-" + measurementTypeGroup.MeasurementTypes[0].TargetConfigure[0].TargetType + "' class='target-metric input " + measurementClass + "-input'>";

        for (index; index < index + 2; index++) {
            if(measurementTypeGroup.MeasurementTypes[index] === undefined)
                break;

            var mType = measurementTypeGroup.MeasurementTypes[index];
            var userTarget = mType.UserTarget;
            var targetConfigure = mType.TargetConfigure[0];

            newNodeHtml += "<div><span>" + mType.MeasurementTypeName + " TARGET</span>" +
                "<input type='text' id='txt-" + measurementClass + "-3-" + mType.MeasurementTypeID + "' placeholder='" + mType.UnitName + "' value='" + targetHighValue + "' " + disableAttribute + "></div>";
        }

        newNodeHtml += "<a onclick='CellClicked(" + mTypeGroupID + ", 3, 3)'><span class='check-range'></span></a>" +
            "</div>";
    }
}
于 2013-07-17T16:09:02.323 回答