作者fr730149 ()
看板Ajax
标题Re: [问题] JQuery合并td
时间Fri Sep 23 11:08:03 2011
抱歉!以下程式码,有几行不懂
烦请前辈们指教
: : // 从第一个row逆向走访每一个cell
: : $($('tr:first td').get().reverse()).each(function(index){
: : // $start为比对目标,指向每一组的首项cell
: : var $start = $current = $(this);
: : var $next;
: : var need_remove = $([]);
: : // 逆向所以index要算一下
: : index = $start.parent().children().length - index - 1;
: : // 取得同一个column的下一个cell
就我所知,while()内应该是放判断条件
而在此处是放($next=$current.parent().next().children().eq(index)).length…
这是什麽意思…?
: : while(($next=$current.parent().next().children().eq(index)).length){
: : if($start.html() == $next.html()){
就我所了解,parseInt()是转换数字
在其後面加上 || 1 ,是转换失败时…将其设为1吗?
: : var rs = (parseInt($start.attr('rowspan'), 10) || 1) + 1;
: : $start.attr('rowspan', rs);
: : need_remove.push($next);
: : }
: : else{
: : $start = $next;
: : }
: : $current = $next;
: : }
: : // 每跑完一个column才移除不要的cell
: : need_remove.each(function(){
: : this.remove();
: : });
: : });
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.125.235.184
1F:推 No:啊..这些是我偷懒的写法.. 括号内是为了让assignment先完成 09/23 13:34
2F:→ No:接着可以看作 ($next).length 这边会这样写是因为 09/23 13:35
3F:→ No:jQuery object若没有选到element,它的length值就会是 0 09/23 13:35
4F:→ No:否则就是大於0的数值,因此可以利用它自动casting来做条件判断 09/23 13:37
5F:→ No:第二个问题,你理解的没错,比较详细的解释 09/23 13:38
6F:→ No:可以看本板 #1DfzJcVC 推文编辑补充的部分 09/23 13:39
7F:→ fr730149:原来while还可以这样用 长见识了 谢谢 09/23 14:41