查找表行使用jquery最接近的方法不工作



我试图得到一个表的行使用jquery最接近的方法如下

function GetPackageSizeDescription() {
var row = $(this).closest('tr');
.....
//ajax call
data: { packageId: $(row).find('.packageId').val()}
}    

,但在jquery执行这行代码var row = $(this).closest('tr');之后,浏览器开发工具中出现了以下行,我无法获得该行元素的值。row = [prevObject: jQuery.fn.jQuery.init[1], context: undefined]

任何想法?

按钮元素表格单元格看起来像

 <td><button type="button" class="btn btn-sm btn-primary" onclick="GetPackageSizeDescription(); return false;">
     <span class="glyphicon glyphicon-info-sign"></span>
      </button>
  </td>

需要将this作为参数发送给函数。

更改为:

function GetPackageSizeDescription(element) {
var row = $(element).closest('tr');

和当你调用GetPackageSizeDescription做:

GetPackageSizeDescription(this)

或者你可以这样重构你的代码…

HTML

<td><button id="getpackagesize-btn" type="button" class="btn btn-sm btn-primary">
     <span class="glyphicon glyphicon-info-sign"></span>
      </button>
</td>
JQUERY

$('#getpackagesize-btn').on('click', function() {
   var row = $(this).closest('tr');
   ...
   //ajax call
   data: { packageId: $(row).find('.packageId').val()}
   return false;
});

最新更新