hi. nuublet here.
`let x = “PerchanceListA”
[x]`
how do i have it retrieve PerchanceListA instead of a list named x?
I bet it’s something simple like some evaluateScript thing but i don’t know because I’m a noob :)
Don’t have the quotes, and it will retrieve a variable by the name
perchanceListA
. So then referencingx
will reference whatever valueperchanceListA
had.Where are you putting the code
let x...
?edit: oops. was cuz i had a wrong capitalization of a list lol. totally my fault and nothing to do with language syntax! :) thanks. very much works
what i had typed about the specifics before solving
you and vionet so smart but i think none of those work for this.
i have my style buttons that i want to be like, for the Bright style for example:
<button onclick="genimgs(this)">Bright</button>
a little more complicated but basically a bunch of buttons exactly like this, but with different stylenames, all pointing togenimgs(button)
genimgs(button)
is then, in it’s simplified form, this: `function genimgs(buttonobject){
let promptData = { prompt: prompt + " " + root[buttonobject.innerHTML], negativePrompt:"bad", resolution: 768x512, guidanceScale: 7, seed: 100, } document.getElementById("imgs").innerHTML = image(promptData).evaluateItem }
`
in genimgs, buttonobject.innerHTML does indeed equal “Bright”. So I want it to pull a line from the Perchance list called Bright, like the Anime button should go to this function, be translated in to the string Anime, and pull a line from the Perchance list Anime. But see how I can’t just type out the word Bright or Anime with no quotes like you and vioneT suggest. It is a string I am getting from a button. It could be tons of different strings. I then need to convert the string in to it’s relevant Perchance List. I believe, in normal JS, if root.Bright were my list,
root[buttonobject.innerHTML]
would retrieve it since in normal JS they are equivalent. But not here and nor do I know the Perchancian way to do it.That should work just fine. But I think you need to use
$root
to access it. Because JS and everything all usewith(root) { ... }
. Which means if you use justroot
you’re actually accessingroot.root
–which I’m guessing doesn’t exist. And that’s why you’re not getting any value.But
$root
always goes back to the root of the perchance main list object. So that might work for you.If it still doesn’t, you can give us the link to the generator and we can look at the code for you and figure out a solution.
Oooh, sorry I understand your comment now. Glad you got it working 👍
It should retrieve the list directly with:
// Perchance PerchanceListA a b c --- // HTML <script> let x = PerchanceListA // if you want a more 'understandable code' // let x = root.PerchanceListA // since all Perchance lists are under the 'root' variable. // also with this, you would overwrite the value of list 'x' if you have one. </script> [x]
ty tho maybe i missexplained.
let xx = "Bright"; alert(root[xx])
in normal javascript, this would access root.Bright. (interesting about ‘root’. didnt kno that)
The above is what I’m trying to do. I have the word for the name of the list on a variable. Hao access list from variable?
I have the variable xx storing the string “Bright”. Hao maek alert say a list item from the list named “Bright”?
For example on the
/minimal
generator we have the list:listnames animal adjective verb location
then on the javascript:
let x = listnames; // you can also use listnames.selectOne, if you only want it to have a single item and you have to reload the page to randomize it again. // This would get a 'random' value from the `listnames`. alert((y = x.selectOne) + ':' + root[y]); // would give a random item from any of the list
Thank you! the root thing worked. turns out i had a capital letter where there shouldnt have been one and that’s why my list wasn’t being translated from the string correctly. silly and my fault and nothing about language. thanks for the help tho!