在方法外使用javascript变量值表单

时间:2016-02-13 04:20:48

标签: javascript scope

这是我用来获取表行号

的函数
$('#myTable').find('tr').click( function(){
    var rownum=$(this).index()
  alert('You clicked row '+ (rownum) );
});

变量rownum我想用它进行进一步处理。但我无法获得它之外的价值。 如何获得它?

我试过suggested here

<script>
find();
  alert('You clicked row '+ (window.rownum) );
</script>

但这对我没有用。

7 个答案:

答案 0 :(得分:2)

有几种方法可以做到这一点。

您目前所做的只需稍加修改即可:

var rownum;
$('#myTable').find('tr').click( function(){
  rownum=$(this).index()
  alert('You clicked row '+ (rownum) );
});

Hovever,首选方法是将变量传递到需要的地方:

function alertRowNumber(rowNumber) {
  alert('You clicked row '+ (rowNumber) );
}

$('#myTable').find('tr').click( function(){
  alertRowNumber($(this).index)
});

如果您想发布一个上下文代码段,可能会为您的特定方案提供更好的解决方案。

答案 1 :(得分:2)

  <script langguage='text/javascript'>  
    var rownum = "";
    $('#myTable').find('tr').click( function(){
      rownum=$(this).index();
      alert('You clicked row '+ (rownum) );
    });
 </script>

不要使用var,只需在外面定义rownum,这样它就是全局的,您可以随时随地访问。您也无法直接致电find()

答案 2 :(得分:1)

您可以设置rownum全局和从函数外部访问:

var rownum;
$('#myTable').find('tr').click( function(){
  rownum = $(this).index();
  alert('You clicked row '+ (rownum) );
});

或者将rownum作为参数传递给其他函数

$('#myTable').find('tr').click( function(){
  var rownum = $(this).index();      
  myOtherFunction(rownum);
});

function myOtherFunction(num)(){
  alert(num)
}

答案 3 :(得分:1)

直接在rownum代码

下方声明script
<script type=text/javascript>
var rownum;

function A(){
    rownum=5;
}
function B(){
    alert(rownum);//will throw 5
}

答案 4 :(得分:0)

您可以使用命名空间技术。

SomeNameSpace={} // Creating name spacing object
   SameNameSpace.rownum='';
   $('#myTable').find('tr').click( function(){
      SameNameSpace.rownum=$(this).index()
      alert('You clicked row '+ (SameNameSpace.rownum) );
    });

因此,只需调用SameNameSpace.rownum

即可在任何地方使用此变量

使用全局变量可能会在以后产生问题,因为其他开发人员可能会使用相同的名称创建变量&amp;在全球空间将是一场冲突

Refer Here for more information on namespace

答案 5 :(得分:0)

使功能成为任何你肯定会得到价值......

 $('#myTable').find('tr').click( function(){
    rownum = $(this).index();
    //  alert('You clicked row '+ (rownum) );
    get(rownum);
 });

function get(rownum)
{
    alert(rownum);
}

答案 6 :(得分:0)

这就是我使用html5会话存储

的方式
//function to set line index on clicking a table row - note there were several tables so i selected the first using .eq();  

$("table").eq(0).on('click','tr',function () 
    {
        var lineNum = $(this).closest("tr").index();
        sessionStorage.setItem('lineNumber',lineNum);
    });

//the following retrieves the line index from session storage and converts it to a number from a string (all session storage values are stored as strings)

var line_Number=parseFloat(sessionStorage.getItem('lineNumber'));