как передать значения переменной в функцию?

Рейтинг: 1Ответов: 2Опубликовано: 14.04.2015

часть кода такая:

var result = 'hello world hello world';

document.getElementById('enter').innerHTML = '<button class="btn btn-default another">Проверка</button>';

Как правильно передать result в функцию, пробовал простым методом '+result+' , но на выходе получаю очень страшный хтмл, строка гуляет по всему элементу button.

Ответы

▲ 2Принят

Метод innerHTML использовать довольно накладно. Проще и быстрее работает динамическое создание и управление объектами DOM дерева:

var result = 'hello world hello world',
    go = function(str) { alert(str); };

var button = document.createElement('button');
button.className = 'btn btn-default another';
button.appendChild(document.createTextNode('Проверка'));
button.addEventListener('click', function() {
    go(result);
}, false);

document.getElementById('enter').appendChild(button);
<div id="enter"></div>

▲ 2

Забудь о onClick, это рудимент прошлого.
Сделай так:

var result = 'hello world hello world';
function go(e){
  document.querySelector('#result').innerHTML = 'Function <strong>go</strong> has been started with arguments: <em>' + e + '</em>';
}

var btn = document.createElement('input');
btn.type = 'button';
btn.className = 'btn btn-default another';
btn.value = 'Проверка';
btn.addEventListener('click', function(){go(result);});
document.getElementById('enter').appendChild(btn);
<div id='enter'></div><br />
<span id='result'>&nbsp;</span>

UPD:

Опередили чуть-чуть :)