2012-05-14 4 views
2

В моем скрипте у меня есть 2 функции. Первая функция ссылается на элемент div, создает элемент абзаца внутри div и добавляет некоторый текст в этот элемент абзаца; В моей второй функции активируется событие onclick, связанное с элементом ссылки. Я хочу, чтобы текст в div был изменен на другой текст при нажатии на ссылку. Я понимаю, что есть два варианта: как достичь этого:Как передать значение локальной переменной из одной функции в другую?

1) объявлять глобальные переменные и использовать их в моей второй функции; 2) передать значение переменной из первой функции второй функции и manipulkate это значение из второй функции

Но вопрос в том, как это сделать я правильно передать значение переменной из первой функции на вторую функцию:

Вот код:

<a href=''onclick='change();return false;'>Change</a> 
<div id='box'></div> 

Javascript:

window.onload= function createEl(){ 
    var el = document.createElement('p'); 
    var x = document.getElementById('box'); 
    var text = 'text'; 

    el.appendChild(document.createTextNode(text)); 
    x.appendChild(el); 
} 

function change(){ 
    x.innerHTML="other text"; 
} 

ответ

1

вообще можно написать следующим образом:

function one(){ 
    var var1 = "hello"; 
    two(var1); 
} 

function two(x){ 
    alert(x); 
} 

это предупредит «привет».

0

Для того, что вы делаете, я зарегистрировал бы свои события через код, чтобы было легче передать переменную. Мы хотим использовать аргумент в функции обработки событий для передачи данных на него.

window.onload = function() 
{ 
    // do your normal stuff with creating elements 
    var anc = document.getElementById('ID of your a element here'); 
    if(anc.attachEvent) 
    { 
     //code for ancient IE 
     anc.attachEvent('onclick', function(){change(x);}); 
    } 
    else if(anc.addEventListener) 
    { 
     //code for modern browsers 
     anc.addEventListener('click', function(){change(x);}); 
    } 
} 
function change(elem) 
{ 
    elem.innerHTML='other text'; 
} 

Обратите внимание, что более старые версии IE не признают addEventListener и использовать attachEvent вместо этого, как показано в приведенном выше, если блок. Вот documentation для addEventListener.

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