how to assign the value for global variable in javascript?
Question by User
I use the following script function for get the row id from the grid. It was working properly. I get the ID within the click function. But if I try to get the outside of the function it will display Empty. I need the click function value for selr outside? How to do this?
var selr='';
$(document).ready(function(){
$("#datagrid").click(function(e) {
row = jQuery(e.target).closest('tr');
getId= row.attr("id");//for getting row number
selr = $("#datagrid").getCell(getId,'companyid');//getting Row ID
alert('alert in'+selr);
});
alert('alert out'+selr);
});
Answer by Praveen Kumar
The thing is, the value of selr gets declared only when you initiate the click function. So check after clicking the jqGrid.
The script inside the $(document).ready(); will not work, and will show as empty because, after the document is ready, the selr wouldn’t have set.
Instead of having a simple variable, assign selr as a global variable. Just replace selr with window.selr.
window.selr='';
$(document).ready(function(){
$("#datagrid").click(function(e) {
row = jQuery(e.target).closest('tr');
getId= row.attr("id");//for getting row number
window.selr = $("#datagrid").getCell(getId,'companyid');//getting Row ID
alert('alert in'+window.selr);
});
alert('alert out'+window.selr);
});
Answer by Starx
You are already assigning the variable as global.
The problem is the variable is initiated inside a function which is triggered on click of $("#datagrid") and the alert('alert out'+selr); executes upon DOM Ready Event, most probably before the click event triggers.