j2ee中table有2个需求,1.对某些列的行进行去重,2.对某些列支持正反排序,这两个功能会起冲突,贴出源码,求大家指导! 本帖最后由 qiuqiu_henry 于 2013-08-15 15:15:12 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 改成先排序,再去重 第一次没问题吧 我加了先清掉原来的合并,试试function table_rowspan(table_id,colnum){ var table_firsttd = ""; var table_currenttd = ""; var table_SpanNum = 0; var table_Obj = $(table_id + " tr td:nth-child(" +colnum + ")"); $(table_id+' td').show().attr("rowSpan",0); table_Obj.each(function(i){ if(i>0){ $(this).css("color","#1E47BC"); } if(i==0){ table_firsttd = $(this); table_SpanNum = 1; }else{ table_currenttd = $(this); if(table_firsttd.text()==table_currenttd.text()){ table_SpanNum++; table_currenttd.hide(); //remove(); table_firsttd.attr("rowSpan",table_SpanNum); table_firsttd.css("background-color","#E8F2FF"); table_firsttd.css("color","#F7A045"); }else{ table_firsttd = $(this); table_SpanNum = 1; } } });} 哥们 这样做是不行的 ,这样 整个table都变成只有一行了。求帮忙 变成这个样子了。我说的是table的源码。 排序我简单写了个,然后先 排序再 合并相邻重复的<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script><table border=1 id="t1" > <tr> <th>t1</th> <th>t2</th> </tr> <tr> <td>1</td> <td>a</td> </tr> <tr> <td>1</td> <td>b</td> </tr> <tr> <td>3</td> <td>b</td> </tr> <tr> <td>4</td> <td>b</td> </tr> <tr> <td>1</td> <td>b</td> </tr></table> <script>function table_rowspan(table_id,colnum){ var table_firsttd = ""; var table_currenttd = ""; var table_SpanNum = 0; var table_Obj = $(table_id + " tr td:nth-child(" +colnum + ")"); $(table_id+' td').show().attr("rowSpan",0); table_Obj.each(function(i){ if(i>0){ $(this).css("color","#1E47BC"); } if(i==0){ table_firsttd = $(this); table_SpanNum = 1; }else{ table_currenttd = $(this); if(table_firsttd.text()==table_currenttd.text()){ table_SpanNum++; table_currenttd.hide(); //remove(); table_firsttd.attr("rowSpan",table_SpanNum); table_firsttd.css("background-color","#E8F2FF"); table_firsttd.css("color","#F7A045"); }else{ table_firsttd = $(this); table_SpanNum = 1; } } });}function sortTable(id,colnum,th){ var tb=$(id+' tbody'); var tds=[].slice.call( $(id + " tr td:nth-child(" +colnum + ")") ) ; var sort=$(th).data('sort')||1; console.info(sort) tds.sort(function(a,b){ return ($(a).text()>$(b).text()?1:-1)*sort }); $(th).data('sort',sort*-1); $.each(tds, function(i,v){ tb.append( v.parentNode ); });} $(function(){ $('#t1 th').click(function(){ sortTable('#t1',this.cellIndex+1,this); table_rowspan('#t1',this.cellIndex+1); });})</script> <table class="table-css" id="showList" style="margin-left: 1px;"> <thead> <tr role="head" style="display:none;" class="hideTr"> <th style="width:135px"></th> <th sort="true" width="144px">aaa</th> <th style="width:48px"></th> <th style="width:116px"></th> <th style="width:120px"></th> <th style="width:136px"></th> <th style="width:88px"></th> <th style="width:145px"></th> <th style="width:124px"></th> </tr> </thead> <s:if test="data==null || data.isEmpty()"> <tr class="list-row-even"> <td style="width:1070px">There is not data what you wanted!</td> </tr> </s:if> <tbody> <s:else> <s:iterator value="data" id="date1" status="st"> <s:if test="#st.index%2==0"> <tr class="list-row-even"> <td style="width:135px"><s:property value="date" /></td> <td style="width:144px"><s:property value="time" /></td> <td style="width:48px"><s:property value="userip" /></td> <td style="width:116px"><s:property value="servclass" /></td> <td style="width:120px"><s:property value="serverip" /></td> <td style="width:136px"><s:property value="gotoclass" /></td> <td style="width:88px"><s:property value="state" /></td> <td style="width:145px"><s:property value="WTserverip" /></td> <td style="width:124px"><s:property value="usernum" /></td> </tr> </s:if> <s:else> <tr class="list-row-odd"> <td style="width:135px"><s:property value="date" /></td> <td style="width:144px"><s:property value="time" /></td> <td style="width:48px"><s:property value="userip" /></td> <td style="width:116px"><s:property value="servclass" /></td> <td style="width:120px"><s:property value="serverip" /></td> <td style="width:136px"><s:property value="gotoclass" /></td> <td style="width:88px"><s:property value="state" /></td> <td style="width:145px"><s:property value="WTserverip" /></td> <td style="width:124px"><s:property value="usernum" /></td> </tr> </s:else> </s:iterator> </s:else> </tbody> </table>以上table源码 。你那个行去重的代码 ,是有问题的 不信你可以自己试试。会把所有的td排成一行。 想做个按键切换焦点的JS 怎么弄? 求JS效果,图片轮播,中间一张图压住后面的2张图的一部分! 求助!谁有兼容chrome、IE、FF等浏览器的JS复制粘贴代码??? 求结果!求请教! |zyciis| Js有没有像C#的 decimal.ToString("#.0000"); 这样格式化金额的,谢谢 如何加入空格对象 层间位置的问题 求一函数 高分求教---是高手的请进来关于数据库和下拉列表框连动的问题 js方法有参数的时候,怎么定义event 请问,动态产生的一个div,是怎么准确定位位置的? ext动态生成checkbox不显示. 求解!
我加了先清掉原来的合并,试试function table_rowspan(table_id,colnum){
var table_firsttd = "";
var table_currenttd = "";
var table_SpanNum = 0;
var table_Obj = $(table_id + " tr td:nth-child(" +colnum + ")");
$(table_id+' td').show().attr("rowSpan",0);
table_Obj.each(function(i){
if(i>0){
$(this).css("color","#1E47BC");
}
if(i==0){
table_firsttd = $(this);
table_SpanNum = 1;
}else{
table_currenttd = $(this);
if(table_firsttd.text()==table_currenttd.text()){
table_SpanNum++;
table_currenttd.hide(); //remove();
table_firsttd.attr("rowSpan",table_SpanNum);
table_firsttd.css("background-color","#E8F2FF");
table_firsttd.css("color","#F7A045");
}else{
table_firsttd = $(this);
table_SpanNum = 1;
}
}
});
}
哥们 这样做是不行的 ,这样 整个table都变成只有一行了。
求帮忙
变成这个样子了。
我说的是table的源码。
<tr> <th>t1</th> <th>t2</th> </tr>
<tr> <td>1</td> <td>a</td> </tr>
<tr> <td>1</td> <td>b</td> </tr>
<tr> <td>3</td> <td>b</td> </tr>
<tr> <td>4</td> <td>b</td> </tr>
<tr> <td>1</td> <td>b</td> </tr>
</table>
<script>function table_rowspan(table_id,colnum){
var table_firsttd = "";
var table_currenttd = "";
var table_SpanNum = 0;
var table_Obj = $(table_id + " tr td:nth-child(" +colnum + ")");
$(table_id+' td').show().attr("rowSpan",0);
table_Obj.each(function(i){
if(i>0){
$(this).css("color","#1E47BC");
}
if(i==0){
table_firsttd = $(this);
table_SpanNum = 1;
}else{
table_currenttd = $(this);
if(table_firsttd.text()==table_currenttd.text()){
table_SpanNum++;
table_currenttd.hide(); //remove();
table_firsttd.attr("rowSpan",table_SpanNum);
table_firsttd.css("background-color","#E8F2FF");
table_firsttd.css("color","#F7A045");
}else{
table_firsttd = $(this);
table_SpanNum = 1;
}
}
});
}
function sortTable(id,colnum,th){
var tb=$(id+' tbody');
var tds=[].slice.call( $(id + " tr td:nth-child(" +colnum + ")") ) ;
var sort=$(th).data('sort')||1;
console.info(sort)
tds.sort(function(a,b){ return ($(a).text()>$(b).text()?1:-1)*sort });
$(th).data('sort',sort*-1);
$.each(tds, function(i,v){
tb.append( v.parentNode );
});
}
$(function(){
$('#t1 th').click(function(){
sortTable('#t1',this.cellIndex+1,this);
table_rowspan('#t1',this.cellIndex+1);
});
})
</script>
<thead>
<tr role="head" style="display:none;" class="hideTr">
<th style="width:135px"></th>
<th sort="true" width="144px">aaa</th>
<th style="width:48px"></th>
<th style="width:116px"></th>
<th style="width:120px"></th>
<th style="width:136px"></th>
<th style="width:88px"></th>
<th style="width:145px"></th>
<th style="width:124px"></th>
</tr>
</thead>
<s:if test="data==null || data.isEmpty()">
<tr class="list-row-even">
<td style="width:1070px">There is not data what you wanted!</td>
</tr>
</s:if>
<tbody>
<s:else>
<s:iterator value="data" id="date1" status="st">
<s:if test="#st.index%2==0">
<tr class="list-row-even">
<td style="width:135px"><s:property value="date" /></td>
<td style="width:144px"><s:property value="time" /></td>
<td style="width:48px"><s:property value="userip" /></td>
<td style="width:116px"><s:property value="servclass" /></td>
<td style="width:120px"><s:property value="serverip" /></td>
<td style="width:136px"><s:property value="gotoclass" /></td>
<td style="width:88px"><s:property value="state" /></td>
<td style="width:145px"><s:property value="WTserverip" /></td>
<td style="width:124px"><s:property value="usernum" /></td>
</tr>
</s:if>
<s:else>
<tr class="list-row-odd">
<td style="width:135px"><s:property value="date" /></td>
<td style="width:144px"><s:property value="time" /></td>
<td style="width:48px"><s:property value="userip" /></td>
<td style="width:116px"><s:property value="servclass" /></td>
<td style="width:120px"><s:property value="serverip" /></td>
<td style="width:136px"><s:property value="gotoclass" /></td>
<td style="width:88px"><s:property value="state" /></td>
<td style="width:145px"><s:property value="WTserverip" /></td>
<td style="width:124px"><s:property value="usernum" /></td>
</tr>
</s:else>
</s:iterator>
</s:else>
</tbody>
</table>以上table源码 。
你那个行去重的代码 ,是有问题的 不信你可以自己试试。
会把所有的td排成一行。