我正在寻找可帮助我操作HTML网格的脚本或JavaScript框架插件。在某些事件调用中,列和行应该互换。用于将列转换为行和列的HTML代码或框架表格的HTML代码或框架的代码或框架
2
A
回答
0
这是一个简单的函数,假定恰好有n * m个的细胞(无colspans/rowspans,没有变化的行宽度):
function translate(tableel) {
var rows = tableel.rows,
m = rows.length,
n = rows[0].cells.length;
for (var i=0; i<n; i++) {
var r = tableel.insertRow(-1);
for (var j=0; j<m; j++)
r.appendChild(rows[j].cells[0]);
}
for (var i=0; i<m; i++)
tableel.deleteRow(0);
}
将非常与jQuery :-)更复杂
0
这样的事情?
var arr = [];
//Convert to multi array.
$("tr").each(function() {
var r = arr.push([]);
$(this).children("td").each(function() {
arr[r - 1].push($(this).text())
})
});
//Flip array.
var table = "<table>";
for(r=0;r<arr.length;r++) {
table += "<tr>";
for(c=0;c<arr[r].length;c++) {
table += "<td>" + arr[r][c] + "</td>"; //Flipped indexes.
}
table += "</tr>";
}
table += "</table>";
0
<script src="./mootools-core-1.4.5-full-compat.js" ></script>
<script src="./mootools-more-1.4.0.1.js" ></script>
<style>
#container{
background-color: #330;
min-height: 100px;
min-width: 100px;
position:relative;
top:10px;
left:15px;
}
#container .elerc {
border: 1px solid black;
overflow: hidden;
}
.inncell {
display: inline-block;
height: auto;
width: auto;
}
</style>
<script>
window.addEvent('domready',function(){
var r= $$('.c1').length;
var c=$$('.r1').length;
var mx_last_w = 0, mx_last_h = 0;
for(var i=1; i<=r; i++){
var mx_h = 0;
$$('.r'+i+' .inncell').each(function(el){
var cur_h = el.getComputedSize();
if(cur_h.totalHeight > mx_h){
mx_h = cur_h.totalHeight;
}
});
console.log(mx_h);
$$('.r'+i).each(function(el){
//el.set('tween', {transition: Fx.Transitions.Elastic.easeOut});
//el.tween('height', mx_h);
//el.tween('top', mx_last_h);
el.setStyle('height', mx_h);
el.setStyle('top', mx_last_h);
el.setStyle('position', 'absolute');
});
mx_last_h += mx_h;
}
for(var j=1; j<=c; j++){
var mx_w = 0;
$$('.c'+j+' .inncell').each(function(el){
var cur_w = el.getComputedSize();
if(cur_w.totalWidth > mx_w){
mx_w = cur_w.totalWidth;
}
});
console.log(mx_w);
$$('.c'+j).each(function(el){
el.set('tween', {transition: Fx.Transitions.Elastic.easeOut});
//el.tween('width', mx_w);
el.tween('left', mx_last_w);
el.setStyle('width', mx_w);
//el.setStyle('left', mx_last_w);
el.setStyle('position', 'absolute');
});
mx_last_w += mx_w;
}
document.id('container').addEvent('click',function(){
$$('elerc').each(function(el){
el.setStyle('height','auto');
el.setStyle('width','auto');
el.setStyle('display','inline-block');
});
var r= $$('.c1').length;
var c=$$('.r1').length;
var mx_last_w = 0, mx_last_h = 0;
for(var i = 1; i<=r; i++){
$$('.r'+i).each(function(el){
el.addClass('tr'+i);
el.removeClass('r'+i);
});
}
for(var j=1; j<=c; j++){
$$('.c'+j).each(function(el){
el.addClass('r'+j);
el.removeClass('c'+j);
});
}
for(var k = 1; k<=r; k++){
$$('.tr'+k).each(function(el){
el.addClass('c'+k);
el.removeClass('tr'+k);
});
}
for(var i=1; i<=c; i++){
var mx_h = 0;
$$('.r'+i+' .inncell').each(function(el){
var cur_h = el.getComputedSize();
if(cur_h.totalHeight > mx_h){
mx_h = cur_h.totalHeight;
}
});
console.log(mx_h);
$$('.r'+i).each(function(el){
//el.set('tween', {transition: Fx.Transitions.Elastic.easeOut});
//el.tween('height', mx_h);
//el.tween('top', mx_last_h);
el.setStyle('height', mx_h);
el.setStyle('top', mx_last_h);
el.setStyle('position', 'absolute');
});
mx_last_h += mx_h;
}
for(var j=1; j<=r; j++){
var mx_w = 0;
$$('.c'+j+' .inncell').each(function(el){
var cur_w = el.getComputedSize();
if(cur_w.totalWidth > mx_w){
mx_w = cur_w.totalWidth;
}
});
console.log(mx_w);
$$('.c'+j).each(function(el){
el.set('tween', {transition: Fx.Transitions.Elastic.easeOut});
//el.tween('width', mx_w);
el.tween('left', mx_last_w);
el.setStyle('width', mx_w);
//el.setStyle('left', mx_last_w);
el.setStyle('position', 'absolute');
});
mx_last_w += mx_w;
}
});
});
</script>
<div id="container">
<div class="elerc r1 c1"><div class="inncell">name1</div></div> <div class="elerc r1 c2"><div class="inncell"><div style="">12<br/>34</div></div></div> <div class="elerc r1 c3"><div class="inncell"><img src="img02-hover.jpg" style="height: 100px;width: 100px;"/></div></div>
<div class="elerc r2 c1"><div class="inncell">name2</div></div> <div class="elerc r2 c2"><div class="inncell">22</div></div> <div class="elerc r2 c3"><div class="inncell"><img src="img01-hover.jpg" style="height: 50px;width: 70px;" /></div></div>
</div>
相关问题
- 1. 将基于框架的代码迁移到基于非框架的代码
- 2. 如何制作框架代码的非框架代码? (PHP)
- 3. 自动生成C#代码:ApexSql代码或实体框架?
- 4. 健壮的代码框架?
- 5. 用于漫画应用的iOS/iPhone引擎,代码或框架?
- 6. 使用通过代码框架队列
- 7. 关于Rails框架的代码问题
- 8. Zend框架 - PDO源代码
- 9. 代码点火器框架
- 10. Android框架源代码
- 11. Microsoft Sync框架源代码
- 12. web框架将减少代码行数
- 13. JS框架的代码分为
- 14. 加密我的框架和代码
- 15. 如何将Zend框架的PHP代码转换为cakephp
- 16. 用于编码和解码websocket框架的C或C++库
- 17. 找出哪些代码运行实体框架的SQL代码
- 18. Silex中的代码或其他微框架
- 19. 带实体框架的回滚或DiscardChanges代码优先
- 20. 框架或框架64?
- 21. 如何在代码块或dev C++中使用.net框架
- 22. 实体框架,代码优先和datetimes
- 23. 结合异步代码和syncronous框架
- 24. 代码和IB框架不匹配
- 25. 实体框架,仅限代码和EntityDataSource
- 26. 超薄框架和代码覆盖率
- 27. WPF和实体框架代码第一
- 28. Rails框架上的Ruby CGI代码
- 29. 生成的实体框架代码
- 30. 临ASP.net MVC框架的代码问题