Copy link to clipboard
Copied
So i know i can use the below to get a layer
var layerName = "Text BG";
app.activeDocument.activeLayer = layers[layerName];
This works fine when the layer isn't within a group, but if it is I get an error
Error 1302: No such element
Line: 53 -> app.activeDocument.activeLayer = layers[layerName];
The layer is within a group called Text Group, how do i go about getting the group correctly?
Copy link to clipboard
Copied
layers is undefined
Copy link to clipboard
Copied
Layers is fine, as i said it works fine if the layer isn't in a group.
Layers is defined using
var layers = app.activeDocument.layers;
earlier in the script
Copy link to clipboard
Copied
with(activeDocument)
activeLayer = layerSets['Text Group'].artLayers['Text Bg']
Copy link to clipboard
Copied
@Desbrina I believe that @Kukurykus has provided one possible solution which you can mark as the correct answer.
In my journey of learning scripting, I have collected various useful snippets. The last example in this link uses layer index:
https://gist.github.com/MarshySwamp/229a0676666a44cdaa007da1cfddc0b7
The following is basically the same as the reply from Kukurykus with a slightly different syntax, swapping the layer index numbers in the GitHub Gist example above for names.
activeDocument.activeLayer = activeDocument.layerSets["Text Group"].layers["Text BG"];
Copy link to clipboard
Copied
Yes, as the others have mentioned, you need to select the group to get the layer within it.