Подтвердить что ты не робот

Javascript: получить значение переменной функции в рамках другой функции

ОК, поэтому у меня есть этот код в теле:

<input type="text" value="haha" id="full_name"/>

И этот код в script

<script language="javascript" type="text/javascript">
    function first(){
        var nameContent=document.getElementById('full_name').value;
    }

    function second() {
        first();
        y=nameContent; 
        alert(y);
    }
    second();
</script>

Я хочу, чтобы предупреждение показывало значение элемента full_name, но оно, похоже, не работает, кто-нибудь знает почему?: S

4b9b3361

Ответ 1

nameContent существует только в функции first(), поскольку вы определили его в функции first().

Чтобы расширить свой охват, определите его вне функций:

var nameContent;

function first(){
    nameContent=document.getElementById('full_name').value;
}

function second() {
    first();
    y=nameContent; alert(y);
}
second();

Немного лучший подход состоял бы в return значении, поскольку глобальные переменные бывают очень беспорядочными:

function getFullName() {
  return document.getElementById('full_name').value;
}

function doStuff() {
  var name = getFullName();

  alert(name);
}

doStuff();

Ответ 2

Ваше имяСодержание области доступно только внутри первой функции. Вы никогда не получите это значение таким образом.

var nameContent; // now it global!
function first(){
    nameContent = document.getElementById('full_name').value;
}

function second() {
    first(); 
    y=nameContent; 
    alert(y);
}
second();

Ответ 3

вам понадобится оператор return в вашей первой функции.

function first(){
    var nameContent = document.getElementById('full_name').value;
    return nameContent;
}

а затем в вашей второй функции может быть:

function second(){
    alert(first());
}

Ответ 4

Ваша переменная nameContent находится внутри области функций и не видна вне этой функции, поэтому, если вы хотите использовать nameContent вне функции, объявите ее global внутри тега <script> и используйте внутренние функции без ключевое слово var следующим образом

<script language="javascript" type="text/javascript">
    var nameContent; // In the global scope
    function first(){
        nameContent=document.getElementById('full_name').value;
    }

    function second() {
        first();
        y=nameContent; 
        alert(y);
    }
    second();
</script>