2013-07-01 8 views
0

У меня есть 12 функций, которые выполняют одну и ту же работу, но просто нацеливаются на разные элементы. Я пытаюсь очистить свой код и посмотреть, есть ли способ создать для него одну функцию.очистка нескольких функций jquery

пример:

function incrementValue() 
{ 
    var value = parseInt(document.getElementById('number').value, 10); 
    value = isNaN(value) ? 0 : value; 
    value++; 
    document.getElementById('number').value = value; 
} 
function incrementValue2() 
{ 
    var value = parseInt(document.getElementById('number2').value, 10); 
    value = isNaN(value) ? 0 : value; 
    value++; 
    document.getElementById('number2').value = value; 
} 

В основном каждый раз, когда кнопка нажата его увеличивает значение внутри входного сигнала.

HTML:

<input type="button" onclick="incrementValue()" value="VOTE" /> 
<a href="option1.html" title="More information"><img src="icon.png" /></a> 

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

Благодаря

+0

Можете ли вы опубликовать HTML-код –

+0

HTML, извините за это! –

+0

Вы дважды объявляете «значение». Я не уверен, что вы можете это сделать. –

ответ

3

Похоже, вам просто нужна параметризованная функция:

function incrementValue(target) 
{ 
    var el = document.getElementById(target); 
    var value = parseInt(el.value, 10); 
    value = isNaN(value) ? 0 : value; 
    value++; 
    el.value = value; 
} 

Тогда вы можете вызвать эту функцию с

incrementValue('number'); 
incrementValue('number2'); 
// etc. 
+0

Я только что попробовал это, и он работает над первым щелчком, но затем больше не добавляет, просто перестает работать на (1) –

+0

@DamianSmith Можете ли вы создать пример [скрипка] (http://jsfiddle.net/)? – Sirko

+0

Вот мой код с только одна функция/вызова http://jsfiddle.net/BMMNn/ –

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