Skip to main content
Inspiring
January 15, 2022
Question

Multiple if conditions

  • January 15, 2022
  • 2 replies
  • 274 views

I think it is simple, but i cannot get the correct result

I want to assign at variable "newname" the contents of   grouped text layers

The text layers group have 1-5 text sublayers

var textlayersnum = activeDocument.activeLayer.artLayers.length ;
///// Get Text group sublayers number 
var textlayersnum = activeDocument.activeLayer.artLayers.length ;

if (textlayersnum = 1) 
{
var name1 = activeDocument.activeLayer.artLayers[0].name;
var newname = (name1); 
} 
else if (textlayersnum = 2)
{
var name1 = activeDocument.activeLayer.artLayers[0].name;
var name2 = activeDocument.activeLayer.artLayers[1].name;
var newname = (name1 +" " +name2); 
} 
else if (textlayersnum = 3)
{
var name1 = activeDocument.activeLayer.artLayers[0].name;
var name2 = activeDocument.activeLayer.artLayers[1].name;
var name3 = activeDocument.activeLayer.artLayers[2].name;
var newname = (name1 +" " +name2 +" " +name3); 
} 
else if (textlayersnum = 4)
{
var name1 = activeDocument.activeLayer.artLayers[0].name;
var name2 = activeDocument.activeLayer.artLayers[1].name;
var name3 = activeDocument.activeLayer.artLayers[2].name;
var name4 = activeDocument.activeLayer.artLayers[3].name;
var newname = (name1 +" " +name2 +" " +name3 + " " +name4); 
}

 

This topic has been closed for replies.

2 replies

Kukurykus
Legend
January 15, 2022

The contents of text layer is not the same as its name. The contents layer is that, what you asked in:

Script, copying text layers contents to clipboard

 

btw the script in other thread does what you want here (when changing the goal to names from contents).

 

 

Regarding currect script from original post, change '=' characters to '==', or use:

aLs = [].slice.call(activeDocument.activeLayer.artLayers), nms = ''
while(aLs.length) nms += aLs.shift().name + ' '; nms.slice(0, -1)
siomospAuthor
Inspiring
January 15, 2022

Using case seems to work!

#target photoshop;

var thedoc = app.activeDocument;
app.activeDocument.activeLayer = app.activeDocument.layerSets.getByName("Text");

 var myLayerName = activeDocument.activeLayer.name; 
 
 var textlayersnum = activeDocument.activeLayer.artLayers.length ;
//alert(textlayersnum);
 
switch ( textlayersnum) {
  case 1:
 var name1 = activeDocument.activeLayer.artLayers[0].name;
 
    break;
  case 2:
  var name1 = activeDocument.activeLayer.artLayers[0].name;
var name2 = activeDocument.activeLayer.artLayers[1].name;
var newname = (name1 +" " +name2);
    break;
  case 3:
var name1 = activeDocument.activeLayer.artLayers[0].name;
var name2 = activeDocument.activeLayer.artLayers[1].name;
var name3 = activeDocument.activeLayer.artLayers[2].name;
var newname = (name1 +" " +name2 +" " +name3);
   
    break;
  case 4:
  
   var name1 = activeDocument.activeLayer.artLayers[0].name;
var name2 = activeDocument.activeLayer.artLayers[1].name;
var name3 = activeDocument.activeLayer.artLayers[2].name;
var name4 = activeDocument.activeLayer.artLayers[3].name;
var newname = (name1 +" " +name2 +" " +name3 +" " +name4); 
 
    break;
  case 5:
   var name1 = activeDocument.activeLayer.artLayers[0].name;
var name2 = activeDocument.activeLayer.artLayers[1].name;
var name3 = activeDocument.activeLayer.artLayers[2].name;
var name4 = activeDocument.activeLayer.artLayers[3].name;
var name5 = activeDocument.activeLayer.artLayers[4].name;
var newname = (name1 +" "+name2 +" "+name3 +" " +name4 +" " +name5); 

    break;
  case 6:
var name1 = activeDocument.activeLayer.artLayers[0].name;
var name2 = activeDocument.activeLayer.artLayers[1].name;
var name3 = activeDocument.activeLayer.artLayers[2].name;
var name4 = activeDocument.activeLayer.artLayers[3].name;
var name5 = activeDocument.activeLayer.artLayers[4].name;
var name6 = activeDocument.activeLayer.artLayers[5].name;
var newname = (name1 +" " +name2 +" " +name3 +" " +name4 +" " +name5 +" " +name6 );
  
    break;
  case 7:
var name1 = activeDocument.activeLayer.artLayers[0].name;
var name2 = activeDocument.activeLayer.artLayers[1].name;
var name3 = activeDocument.activeLayer.artLayers[2].name;
var name4 = activeDocument.activeLayer.artLayers[3].name;
var name5 = activeDocument.activeLayer.artLayers[4].name;
var name6 = activeDocument.activeLayer.artLayers[5].name;
var name7 = activeDocument.activeLayer.artLayers[6].name;
var newname = (name1 +" " +name2 +" " +name3 +" " +name4 +" " +name5 +" " +name6 +" " +name7);
  
} 
   alert(newname);