Getting sibling value of key in a JavaScript object literal
Asked Answered
M

2

5

Does anybody know of there's a way to reference the value of a sibling key in a JavaScript object literal?

so use the value of target in the beforeNext() function here:

obj: {
        target: 'li.player a.icon-tag',
        parent: 'ul#drop_list',
        beforeNext: function(){
          target.addClass('bind active');
        }
      }
Mojica answered 20/6, 2013 at 14:35 Comment(1)
Did you try this.target?Tamp
H
4

This is not a "JSON" object, but a JavaScript Object (or just "Object"). I assume that this is also contained in an Object literal as obj: { by itself is invalid syntax.

Anyway, yes you can reference properties of an object in methods with this.

beforeNext: function () {
    this.target;
}

http://jsfiddle.net/ExplosionPIlls/Q9v8r/

Holystone answered 20/6, 2013 at 14:39 Comment(3)
@Mojica Don't forget to turn it into a jQuery object, as it's not currently stored as one.Tamp
@Tamp Thanks guys, the full object is here: options = { steps: [ { target: 'li.player.playing .share-btns a.icon-tag', parent: 'ul#drop_list', ok:true, beforeNext: function(){ this.target.addClass('blink active'); $("a.icon-tag").bind('click', function() { tour.finish(); }); } } ] }; so options is an object with an array steps that contains a number of objects. this.target doesn't seem to be working, any ideas why?Mojica
@Mojica target is just a string; try $(this.target).addClass as crush suggestedHolystone
S
0

In case you're dealing with plain JavaScript:

var cartoon = {"george jetson":{"son":"elroy","daughter":"judy"} }

Use the Object constructor to convert a string to an object:

cartoon["george jetson"].son = Object(cartoon["george jetson"].son)

Then bind the sibling value:

cartoon["george jetson"].son.sister = cartoon["george jetson"].daughter

And use toString to get the original value:

cartoon["george jetson"].son.toString()

references

Spineless answered 12/3, 2014 at 19:27 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.