Как я могу имитировать PHP $$ (двойной знак доллара) в jQuery - PullRequest
2 голосов
/ 08 декабря 2011

Во-первых, позвольте мне упомянуть, что это моя первая попытка использовать плагин jQuery с нуля.

Для начала я хочу, чтобы мой плагин принимал пользовательские параметры (+ parms) черезобъект.Например:

<script>
    $(document).ready(function() {
        $('.myClass').augaetrk({
            myobja : {zero:'obj00 zero',one:'obj01 one',two:'obj02 two'},
            myobjb : {zero:'obj10 aaa',one:'obj11 bbb'}
        });
    }); 
</script>

Примечание. Имена этих объектов не будут предопределены.Они будут на усмотрение разработчика, использующего плагин.

Короче говоря, в плагине я анализирую (например) CSS-классы ссылки, чтобы определить, какой объект parms пользователя мне следует использовать в дальнейшем.в плагин.Например.

<a class="other-class-1 this-myobja otherclass-2" href="http://mylink.com">some link</a>

Я могу получить класс - в данном случае это myobja и имя нужного мне объекта, myobja.То, что я не могу понять, так это то, как использовать эту строку / значение в качестве имени объекта, значения parm которого я хочу получить / использовать.

В данный момент я каждый из них перебираю варианты и использую простой if, чтобы добраться до нужного мне объекта.Это работает, но я думаю, что я добавляю много ненужных накладных расходов.В PHP я бы использовал $$, но я не могу найти этот эквивалент в jQuery.

Как получить значение, полученное при разборе класса ссылки =, а затем использовать это значение для получения соответствующих (пользовательских) параметров?

Если вы можете помочь , пожалуйста, напечатайте медленно и предположите, что я знаю даже меньше, чем вы думаете, я мог бы знать.Хотя, возможно, немного продвинутая концепция программирования, я ни в коем случае не являюсь продвинутым - или даже средним - разработчиком jQuery.Я уверен, что вы заняты, но если вы дадите ответ / пример, пожалуйста, имейте в виду, что я пытаюсь учиться, так что немного объяснений будет принята с благодарностью.Благодарю.

Ответы [ 3 ]

3 голосов
/ 08 декабря 2011

Если вы можете получить имя соответствующей части вашего объекта из класса a, то вы можете ссылаться на него следующим образом: object["stringKey"] или object[variable]. Учитывая ваш пример:

// this object mimics the object passed to your plugin
var myobj = {
    myobja: {
        zero: 'obj00 zero',
        one: 'obj01 one',
        two: 'obj02 two'
    },
    myobjb: {
        zero: 'obj10 aaa',
        one: 'obj11 bbb'
    }
}

var objectName = "myobja"; // This would be the value from the A elements' class
alert(myobj[objectName].zero)

Пример скрипки

0 голосов
/ 08 декабря 2011

Добро пожаловать!

Ваши параметры пользователя, которые вы хотели бы получить, являются объектами из вышеуказанного источника? myobja, myobjb? Так как насчет хранения этих объектов в ассоциативном массиве?

objects["myobja"] = myobja;
objects["myobjb"] = myobjb;

Это несколько полезно?

0 голосов
/ 08 декабря 2011

Вы можете использовать квадратные скобки, чтобы использовать строки в качестве ключей для объектов.

var object = {};
var str = 'prop';
object[str] = 12;
console.log(object.prop); // 12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...