在方法外部使用 javascript 变量 Value form

Using javascript variable Value form outside the method

本文关键字:变量 Value form javascript 方法 外部      更新时间:2023-09-26

这是我用来获取表行号的函数

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

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

我已经按照这里的建议进行了尝试。

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

但这对我来说并没有奏效。

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

您目前拥有的内容只需稍作修改即可使用:

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

无论如何,首选方法是将变量传递到需要的地方:

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

如果您想发布上下文中的代码段,则可能有一个更好的解决方案,适用于您的特定方案。

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

不要使用var,只需在外部定义rownum,这样它就是全局的,您可以在任何地方访问。您也不能直接致电find()

您可以设置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)
}
<</div> div class="answers">

script标签正下方声明rownum

<script type=text/javascript>
var rownum;
function A(){
    rownum=5;
}
function B(){
    alert(rownum);//will throw 5
}

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

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

因此,您可以在任何地方通过简单地调用SameNameSpace.rownum来使用此变量

使用全局变量可能会在

以后产生问题,因为其他开发人员可能会在全局空间中创建具有相同名称和冲突的变量

有关命名空间的更多信息,请参阅此处

使函数成为任何函数,您肯定会获得价值...

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

这就是我使用 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'));