【问题标题】:<s>Loop through nth-child</s> Loop through switch function<s>循环遍历 nth-child</s> 循环遍历 switch 函数
【发布时间】:2018-03-29 07:37:10
【问题描述】:

我正在从一个循环中创建一个表,其中第一个 cel 具有变量值,而行中的其余 cel 具有相同的值。

所以我一开始就把它写出来了,但我现在想把它改成一个更智能的循环。 我相信 nt-child 值应该是可能的,因为其余单元格具有相同的值。
这是基础:

for(i=0; i<TableElementes.length; i++){
    var myColumnsSet = myTableElements[i].columns.everyItem().getElements();
    if(myColumnsSet.length == 2)
    {
        myTableElements[i].columns.item(0).width = 68;
        myTableElements[i].columns.item(1).width = 16;
    }
    if(myColumnsSet.length == 3)
    {
        myTableElements[i].columns.item(0).width = 52;
        myTableElements[i].columns.item(1).width = 16;
        myTableElements[i].columns.item(2).width = 16;
    }
}

我将 ExtendScript 与 InDesign 一起使用,但这对逻辑无关紧要。我真的不知道该怎么做。

所以我在代码上取得了一些进展,现在我想循环使用switch 函数。 有什么想法吗?

for(i=0; i<myTableElements.length; i++) {
var myColumnsSet = myTableElements[i].columns.everyItem().getElements();
for(a=1; a<myColumnsSet.length; a++){
    var basicCelSize = myTableElements[i].columns.item(a).width = 16;
    switch(myColumnsSet.length){
            // loop case met i;
        case 2:
            myTableElements[i].columns.item(0).width = 68;
            basicCelSize;
        break;
        case 3:
            myTableElements[i].columns.item(0).width = 52;
            basicCelSize;
        break;
        case 4:
            myTableElements[i].columns.item(0).width = 36;
            basicCelSize;
        break;
        case 5:
            myTableElements[i].columns.item(0).width = 110;
            basicCelSize;
        break;
        case 6:
            myTableElements[i].columns.item(0).width = 94;
            basicCelSize;
        break;
        case 7:
            myTableElements[i].columns.item(0).width = 78;
            basicCelSize;
        break;
        case 8:
            myTableElements[i].columns.item(0).width = 62;
            basicCelSize;
        break;
        case 9:
            myTableElements[i].columns.item(0).width = 46;
            basicCelSize;
        break;
        case 10:
            myTableElements[i].columns.item(0).width = 30;
            basicCelSize;
        break;
    }

}
myTables.rows.everyItem().minimumHeight = "1.058 mm";
myTables.rows.everyItem().maximumHeight = "211.667 mm";

};

【问题讨论】:

  • 你在循环开关?你到底在问什么?
  • @ThisGuyHasTwoThumbs。听到你的名字就笑了……是的,我正在循环开关。对不起这是我的错。不是很清楚。我想为case 创建一个循环,以便我可以增加案例编号
  • 很高兴它让你笑了哈哈 ;) 而且啊,我看不出有什么担心 :)

标签: javascript jquery loops for-loop extendscript


【解决方案1】:

而不是switch 语句循环,将所需的宽度存储在数组中可能更容易,由与switch 相同的东西索引取决于:

var theWidths = [0, 0, 68, 52, 36, 110, 94, 78, 62, 46, 30]

for (i = 0; i < myTableElements.length; i++) {
  var myColumnsSet = myTableElements[i].columns.everyItem().getElements();
  for (a = 1; a < myColumnsSet.length; a++) {
    myTableElements[i].columns.item(a).width = 16;
    // if necessary, check here to make sure myColumnsSet.length is between 2 and 10
    myTableElements[i].columns.item(0).width = theWidths[myColumnsSet.length];
  }
}

【讨论】:

    猜你喜欢
    • 2016-09-20
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    相关资源
    最近更新 更多