Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
37
rated 0 times [  44] [ 7]  / answers: 1 / hits: 20978  / 12 Years ago, fri, june 1, 2012, 12:00:00

Having a scope issue problem with a $.each loop in jQuery. How can I get a global variable in a function to set in a loop or at least pass something out of it?



var some_function = function() {

// false by default
var something = false;

$.each(array, function(key, val) {
if (val == 'something')
{
// even if one item evaluates true I need to check outside of the loop
something = true;
}
});

if (something == true)
{
// do something else, but always false
}
}


Since I'm needing to evaluate all items in the array, and if only one is true, then do something additional, outside of the $.each.



Update



$(document).ready(function () {
something();
$(':radio').trigger('change');
)};


Ok, so this is the actual code. It's alerting 'false' at the bottom and then alerts 'hello' twice, as if it's going in reverse order.



var something = function() {   

var q_radios = {
'radio1' : 'radio1_selector',
'radio2' : 'radio2_selector',
};
var show_me = false;

$.each(q_radios, function(name, q_selector) {
$('input:radio[name=' + q_selector + ']').change(function() {
show_me = true;
alert('hello');
});
});

if (show_me == true)
{
alert('yes');
}
else
{
alert('false');
}

};

More From » jquery

 Answers
5

More or less, exactly what you have now … you just need to pass the data into the function (by letting it accept an argument). See a live example.



var some_function = function(array) { 

// false by default
var something = false;
$.each(array, function(key, val) {
if (val == 'something') {
something = true;
}
});

if (something == true) {
alert(There was a something);
} else {
alert(There wasn't a something);
}
};

some_function([1,2,3]);
some_function([1,something,3]);


[#85208] Thursday, May 31, 2012, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
sam

Total Points: 711
Total Questions: 96
Total Answers: 107

Location: Burkina Faso
Member since Thu, Dec 23, 2021
2 Years ago
;