为了账号安全,请及时绑定邮箱和手机立即绑定

$('th', $table).each(function( column ){}这些参数的意思?

$('th', $table).each(function( column ){}这些参数的意思?

犯罪嫌疑人X 2021-11-20 15:11:10
这是对表格进行排序的一个jquery,谁能解释一下这个函数头啊?如下:{ var $sortOrder = 0; //排序类型 1表示升序,0表示降序var $table = $('table#shop');$('th', $table).each(function( column ){//处理三种有可能存在的排序字段,比较方法var findSortKey;if( $(this).is('.sort-title') || $(this).is('.sort-author') ){findSortKey = function( $cell ){return $cell.find('.sort-title').text().toUpperCase()+ '' +$cell.text().toUpperCase();}}else if( $(this).is('.sort-date') ){findSortKey = function( $cell ){return Date.parse('1' + $cell.text());}}else if( $(this).is('.sort-price') ){findSortKey = function( $cell ){var key = parseFloat($cell.text().replace(/^[^\d.]*/, ''))return isNaN(key) ? 0 : key;}}//排序if( findSortKey ){$(this).addClass('clickable').hover(function(){$(this).addClass('hover');var $title = $sortOrder == 0 ? '升序' : '降序';$(this).attr('title', '按'+ $(this).html() + $title +'排列');}, function(){$(this).removeClass('hover');}).click(function(){$sortOrder = $sortOrder == 0 ? 1 : 0;var rows = $table.find('tbody > tr').get();$.each( rows, function( index, row ){row.sortKey = findSortKey($(row).children('td').eq(column));});//排序方法rows.sort(function( a, b ){if( $sortOrder == 1 ){//升序if(a.sortKey < b.sortKey) return -1;if(a.sortKey > b.sortKey) return 1; return 0;}else{//降序if(a.sortKey < b.sortKey) return 1;if(a.sortKey > b.sortKey) return -1; return 0;} });//排序后的对象添加给$table$.each( rows, function( index, row ){$table.children('tbody').append(row);row.sortKey = null;});$table.find('td').removeClass('sorted').filter(':nth-child('+ (column + 1) +')').addClass('sorted');//重新赋予奇偶行的样式$table.alterRowColors();});} }); });
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

$(document).ready(function() -->载入时执行function()
// $('table.sortable').each(function() -->对每个class="sortble"的table执行function()
// var $table = $(this); -->创建一个jquery对象的$table,并分别用$(this)也就是上面的每个class="sortble"的table给 这个$table赋值

查看完整回答
反对 回复 2021-11-24
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

$('th','table')两者是并列的,选择所有th,table标签
$('table th')是从属关系,选择所有table下的th标签,不包含table标签。
经过测试发现:
1.$('th','table') 确实是api文档所说的 'table'为原始DOM节点 ,所以返回的为th的所有元素
2.$('th , table')两者是并列的,选择所有th,table标签
3.$('table th')是从属关系,选择所有table下的th标签,不包含table标签。
那我认为 $('th','table') 与 $('table th') 效果是一样的

查看完整回答
反对 回复 2021-11-24
  • 2 回答
  • 0 关注
  • 453 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信