Jquery из строки в перменную

Avatar 71
1006

Здравствуйте! Прошу помощи.

Есть переменная:

var d1 = "2";

Есть код:

<div class="block" data-id="d1" data-num="0"><span>Одноэтажный дом</span></div>

Есть скрипт:

$('button.calc').click(function(e) {

$('.block').each(function(indx, element){

if ( $(this).hasClass('active')){

var ids = $(this).attr('data-id'); ----- получаем атрибут data-id в котором хранится значение "d1"

$(this).attr('data-num', ids)-----назначаем атрибуту data-num значение "d1" (как преобразовать строку d1 в переменную, которая была объявлена? Что бы в атрибут подсталялся не текст "d1" а число, которое этой переменной назначено)

}});

Avatar 82
#1
Домены с ТИЦ, ПР, ДМОЗ (http://webdomainservice.net) и др. c аукциона Godaddy. Полные списки освобождающихся доменов (http://webdomainservice.net/free_no_drop) с параметрами от Snapnames.com, Namejet, Pool (не дроп).
Avatar 0
[Удален]
#2


var d1 = "100";
console.log( window['d1'] );
Avatar 22
#3


var ids = Number($(this).attr('data-id'));
Топовая пп по вапклику, лучшая цена выкупа подписок (https://goo.gl/V8635z)
Avatar 87
#4

Попробуйте хранить переменные в массиве.

var arr = new Array();

arr['d1'] = "2";

А обращаться к ним через вашу переменную в качестве ключа.

$(this).attr('data-num', arr[ids])

Сердце бьется, мысли зреют, мозг не спит! Облачная база каталогов (/ru/forum/708603)
Avatar 0
[Удален]
#5

Вот из-за таких ... как ТС и отвечать не хочется в этом разделе. Перед ним тут люди распинаются он б.. даже ответить не удосужился.

Обычно после таких текстов они прибегают и орут, я не видел, че паникуешь .. и пр.

ДП 187
#6
Yur_OK:
Попробуйте хранить переменные в массиве.
var arr = new Array();
arr['d1'] = "2";
А обращаться к ним через вашу переменную в качестве ключа.
$(this).attr('data-num', arr[ids])

Насколько я в курсе, у массивов в js индексы должны быть числовые. Т.е. здесь надо создавать объект через

var arr = {};
тогда дальнейшее обращение arr['d1'] будет верным.

Другое дело, что в js практически всё объект и ваш код наверно будет работать, но это не по фен-шую (как и то, что ТС пытается селать)

Avatar 256
#7
Дикий пионер:
Насколько я в курсе, у массивов в js индексы должны быть числовые. Т.е. здесь надо создавать объект через

так и есть https://learn.javascript.ru/object

Здесь не могла быть ваша реклама
Avatar 71
#8

Извините, были проблемы с провайдером...

Попробовал этот вариант:

var ids = Number($(this).attr('data-id'));

На выходе получил NaN

Получилось сделать с помощью объекта. Всех благодарю за помощь

Avatar 87
#9
Дикий пионер:
Насколько я в курсе, у массивов в js индексы должны быть числовые. Т.е. здесь надо создавать объект через
var arr = {};
тогда дальнейшее обращение arr['d1'] будет верным.

Так и есть, спасибо что поправили.

Дикий пионер:
Другое дело, что в js практически всё объект и ваш код наверно будет работать, но это не по фен-шую (как и то, что ТС пытается селать)

Задача стаяла получить значение переменной. А к фен-шую, уверен, ТС дойдет позже самостоятельно :)

Avatar 22
#10
barabash:


Попробовал этот вариант:
var ids = Number($(this).attr('data-id'));

На выходе получил NaN

Да, я неправильно прочитал условие) Как вариант:

var ids = $(this).attr('data-id');

ids = Number(eval(ids));

Но лучше через объект :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий