2014-10-15 5 views
0

Я хотел получить значение переменной chkArray при вызове вне метода.Как вызвать переменную из вложенной функции в JQuery

Когда я позвонил getValues ​​(). Всего вне метода. Я получаю сообщение об ошибке, так как не могу прочитать свойство total undefined.

function getValues(){ 
chkArray = new Array() ; 
$("input[type=checkbox]:checked").each(function fire() { 
var total = chkArray.push($(this).val()); 
console.log(chkArray)  
}); 
}; 

Пожалуйста, помогите, как назвать эту переменную вне метода

+0

Im confused относительно того, где находится '.total' ..' total' не определен нигде. – tymeJV

+0

Я отредактировал, пожалуйста, еще раз проверьте – karthe

ответ

0

function getValues() { 
 
    var total = new Array(); 
 
    $("input[type=checkbox]:checked").each(function() { 
 
    total.push($(this).val()); 
 
    }); 
 
    return total; 
 
}; 
 

 
function doSomething() { 
 
    var k = getValues(); 
 
    console.log(k); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
1 
 
<input type="checkbox" name="myCheckbox" value="1" /> 
 
<br />2 
 
<input type="checkbox" name="myCheckbox" value="2" /> 
 
<br />3 
 
<input type="checkbox" name="myCheckbox" value="3" /> 
 
<br />4 
 
<input type="checkbox" name="myCheckbox" value="4" /> 
 
<br />5 
 
<input type="checkbox" name="myCheckbox" value="5" /> 
 
<br /> 
 
<input type="button" onClick="doSomething()" value="Click me" />

+0

Большое спасибо за ваш пример. Я могу напечатать ["1", "2", "3"] в console.log (всего), но после проверки текстовых полей при записи код var k = getValues ​​() и print console.log (k), я получаю пустой массив ([]) Мне нужны значения в k после проверки в текстовых полях – karthe

+0

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

1

Используйте это:

function getValues(){ 
    var total = new Array() ; 
    $("input[type=checkbox]:checked").each(function fire() { 
     total.push($(this).val()); 
     }); 
    return total; 
    }; 

Вызов функции

var total= getValues(); 
console.log(total); 
+0

Я получаю пустой массив. Я хотел получить значение total, которое присутствует внутри fire() – karthe

+0

Вы получаете пустой массив, потому что вы не установили флажки, не так ли? И что делает 'fire()' do? '.each (function() {' будет делать то же самое задание. –

+0

да ваш флажок не установлен –

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