Переменная из значения переменной
Добрый день,
Есть переменные: var num1 = 0; var num2 = 0; var num3 = 0; Есть картинки: <img src="..." id="num1"> <img src="..." id="num2"> <img src="..." id="num3"> При левом клике из картинок вытаскиваем ID: $('img').live('click', function(e) { var num = $(this).attr('id'); } В чем собственно вопрос. Мне нужно из полученого ID сделать переменную и добавить к ней 1. Очевидно $('img').live('click', function(e) { var num = $(this).attr('id'); num++; } не дает никаких результатов. Как можно еще такое реализовать? Заранее благодарю. |
Зачем Ва каждый ID в отдельной переменной? Используйте массив.
var ids = []; $('img').live('click', function(e) { ids.push($(this).attr('id')); // если нужно не допускать существования одинаковых ID в массиве, добавить проверку } |
Так как я с массивами раньше не сталкивался вылезли новые проблемы. Попорядку:
var offence = []; // создаем массив offence $('img').live('click', function(e) { //на левый клик var skill = $(this).attr('id'); //вытаскиваем ID и записываем в переменную skill if (jQuery.inArray(skill, offence) == -1) { //Если в массиве нет такого. offence.push(skill, i++); //вписываем и добавляем 1. } }); Все-бы нечего, но тут возникает новая проблемка. Как изменить этот массив при повторном нажатии? После первого клика мы получаем: [ "skill", 1 ] При повторном нажатии нужно получить [ "skill", 2 ] Помимо этого есть еще третья проблема, мне нужно что-бы у каждого нового значения счет начинался с нуля. т.е. Счелкаем на первую картинку два раза и три раза на третью, получаем: [ "imgID1", 2, "imgID2", 3 ] |
Можешь обойтись и без этих переменных, а хранить эти счетчики "у самих картинок":
// начальные установки $('img').data('num', 0); // событие $('img').live('click', function(e) { var $this = $(this); $this.data('num', $this.data('num') + 1); } |
Или можно также объектом :
var offence = {num1:0, num2:0, num3:0}; // создаем объект offence $('img').live('click', function(e) { //на левый клик var skill = $(this).attr('id'); //вытаскиваем ID и записываем в переменную skill offence[skill] = offence[skill] + 1; }); |
Все спасибо, сделал то что хотел, объектом.
|
Часовой пояс GMT +3, время: 03:14. |