2010-06-14 2 views
0

Я чувствую, что это простой вопрос, но я все еще относительно новичок в javascript и jquery.выберите переменную javascript на основе идентификатора элемента из jquery

Я разрабатываю сайт для сенсорного интерфейса, который использует неупорядоченные списки и функции jquery .click для ввода входных данных. У меня есть раздел для ввода времени m: ss с тремя div, каждый из которых содержит список цифр для времени. Мне нужно получить вход для каждого столбца и установить его как переменную. Я изначально разработал входные данные для изменения входных данных формы, потому что я не очень разбирался в javascript. Было легко изменить 3 скрытых входа с помощью div id, но я не могу понять, как это сделать теперь с переменными javascript.

Вот мой исходный код JQuery ...

$("div#time>div>ul>li").click(function() { 
    var id = $(this).parents(".time").attr("name"); 
    var number = $(this).html(); 
    $("input#"+id).val(number); }); 

Последняя строка задает один из 3-х скрытых входов, равным независимо была нажата. Мне нужно сделать так, чтобы отдельные переменные принимали входные данные, а затем я могу манипулировать этими переменными, но я хочу.

Вот короткий фрагмент html, чтобы иметь представление о том, как захват jquery.

<div id="time"> 
    <h1>Time</h1> 
    <div name="minute" class="time" id="t_minute"> 
    M : 
    <ul> 

полный рабочий день HTML здесь: link text

Спасибо всем!

Я использовал SO, чтобы ответить на многие вопросы, которые у меня были, но я не мог найти что-то для этого, поэтому я решил, что присоединяюсь, так как я уверен, что у меня будет больше вопросов на этом пути.

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

window.myValues[id] = number; 
event[i].min = myValues["minute"]; 
event[i].sec = myValues["second"]; 
event[i].sin = myValues["single"]; 
event[i].time = String(event[i].min) + String(event[i].sec) + String(event[i].sin); 

Я пробовал его как с кавычками, так и без них. Я не использовал окно. * Ни для чего, поэтому я не очень уверен, как справиться с этим.

ответ

2

Первое, что нужно упомянуть здесь, не должно быть ненужным. В вашем примере

$('#time').find('li').click() 

должно быть достаточно. Если я вас хорошо понимаю, вы хотите сохранить некоторые данные. Вы можете использовать метод jQuery's $.data. Пример:

$('#time').find('li').click(function(){ 
    var $this = $(this); 
    var name = $this.closest('.time').attr('name'); 
    $.data(document.body, name, $this.html()); 
}); 

Это будет хранить HTML-код в щелкнул Ли в глобальный объект, который доступен как

alert($.data(document.body, 'minute')); 
+0

Спасибо! Это сработало и получило данные именно так, как я хотел. Кроме того, я никогда не видел .find или .closest, но они многое помогут! Я знаю, что мне нужно упростить свои селектора (есть и другие), но я планировал сделать это после того, как все получилось полностью. Эти две вещи мне очень помогут. Этот ответ был прекрасным, спасибо вам большое. –

+0

@phoffer: ответ jAndy тоже, чтобы показать ему свою оценку :) –

0

вы должны иметь возможность ссылаться на переменную из объекта window [], поэтому что-то вроде окна [id] должно делать трюк для ссылки на переменную.

+0

Я не использовал окно для чего-либо, так что я не знаю что делать с твоим предложением, хотя я думаю, что ты помог снежнику что-то подумать. Я добавил код на исходный пост, если вы хотите посмотреть –

Смежные вопросы