jQuery jak podzielić komórkę tabeli na inną liczbę wierszy od kolumny do kolumny
Posiadanie początkowo tabeli zawierającej tylko jeden wiersz i pewną liczbę kolumn. Chcę zapytać, czy można podzielić każdą komórkę (td) na określoną liczbę wierszy, zaczynając od tej kolumny i kontynuując aż do ostatniej kolumny
Powiedzmy, że powyższa tabela jest moją oryginalną tabelą i że w pierwszej kolumnie postanawiam podzielić ją na 2 wiersze, ten podział powinien również dotyczyć wszystkich kolejnych kolumn
Jak widać podział pierwszej kolumny na 2 wiersze podzielił następującą kolumnę na 2 wiersze.
Następnie, jeśli zdecyduję się podzielić drugą kolumnę na 2 wiersze, ten podział powinien mieć zastosowanie tylko do kolumn rozpoczynających się w drugiej kolumnie. Nie powinien dotykać pierwszej kolumny.
Teraz dodam jeszcze dwa przykładowe zdjęcia, aby upewnić się, że zrozumiałem, co chcę uzyskać.
Teraz, gdy opisałem, co muszę osiągnąć za pomocą obrazów, chcę zapytać, czy byłoby możliwe zrobienie czegoś takiego. Jeśli tak, czy uważasz, że mógłbyś podać kilka wskazówek, co powinienem zrobić lub gdzie zacząć?
Wszelkie porady lub wskazówki byłyby bardzo mile widziane.
P.S. Możesz edytować tytuł pytania, jeśli uważasz, że nie pasuje do tego, co w nim opisałem.
Edytować:jsFiddle DodanyMoże nie wspomniałem o tym wcześniej, ale jestem naprawdę nowy w jQuery. Jednak wykonując kilka prób udało mi się coś wymyślićlubię to. Wiem, że kod jest bałaganem, ale przynajmniej daje ci lepsze wyobrażenie o tym, czego szukam. W jsfiddle umieszczam nową tabelę w kolumnie, którą chcę podzielić. Używam tego podejścia, ponieważ szczerze mówiąc, nie mam najmniejszego pojęcia, jak to zrobić w inny sposób. Może teraz z tym jsfiddle będziesz mógł dać trochępropozycje jak to poprawić, a może lepiejpomysł jak to zrobić.
Kod HTML:
Number of Levels(Columns):<input type="text" id="nCols"/>
<input type="button" value="Create Table" id="CreateTreeTable" />
<br />
<br />
<div id="box"></div>
<br />
Kod JS
$(function(){
//------------------------------------------------
$('#CreateTreeTable').click(function () {
var rows = 1;
var cols = parseInt($("#nCols").val())+1;
var head = "head1";
var table = createTable("TreeTable",rows,cols,head);
table.appendTo("#box");
});
$('#box').on('click', '#TreeTable .level', function() {
if(this.id=='level1')
{
var head = $("#head1")
var mytable =$("#TreeTable")
var idRow= "row";
mytable.html("");
head.appendTo(mytable);
var cols = parseInt($("#nCols").val())+1;
var nTimes= prompt("# Level 1: NUMBER OF ROWS: ","2")
for (var i = 0; i < nTimes; i++) {
var row = $('<tr id='+idRow+"-"+ (i+1)+'></tr>').appendTo(mytable);
for (var j = 0; j < cols; j++) {
$('<td id='+idRow+"-"+ (i+1)+":"+(j+1)+'></td>').append("").appendTo(row);
}
}
$('#TreeTable >tbody >tr').each(function(index,item) {
if (index != 0)
{
var cell= $(this).children("td").eq(0);
cell.html('Level 1 : Value');
}
});
}
else
{
var nTimes= prompt("# Level "+this.id +": NUMBER OF ROWS: ","2")
$('#TreeTable >tbody >tr').each(function(index,item) {
if (index!=0)
{
var cell= $(this).children("td").eq(1);
cell.html('');
var temptable= createTableSimple("tb",nTimes,1,"head2")
temptable.appendTo(cell);
}
});
}
});
//------------------------------------------------
});
function createTable(idtable,nrorows,nrocolumnas,head){
mytable = $('<table border="1" cellspacing="0" cellpadding="0" ></table>').attr({ id: idtable });
var rows = nrorows;
var cols = nrocolumnas;
$("#box").html("");
//----------
var row = $('<tr id='+head+'></tr>').appendTo(mytable);
for (var j = 0; j < cols; j++) {
if (j==cols-1)
{
$('<td></td>').append("Returns").appendTo(row);
}
else
{$('<td></td>').append("level"+ (j+1)+
"<input type='button' class='level' value='# Rows' id='level"+(j+1)+"'"+
" />").appendTo(row);
}
}
//----------
return mytable;
}
function createTableSimple(idtable,nrorows,nrocolumnas,head){
mytable = $('<table border=1 cellspacing="0" cellpadding="0" style="width:100%; " ></table>').attr({ id: idtable });
var rows = nrorows;
var cols = nrocolumnas;
//----------
for (var i = 0; i < rows; i++) {
var row = $('<tr></tr>').appendTo(mytable);
for (var j = 0; j < cols; j++) {
$('<td></td>').append("value").appendTo(row);
}
}
//----------
return mytable;
}