Как выбрать и объединить ячейки динамической созданной таблицы?
Я создал динамическую таблицу и выделил(щелкнув td) ячейки таблицы с помощью jquery. Теперь я хочу объединить выбранные ячейки таблицы по щелчку кнопки(merge). Как я могу это сделать?
Что я уже пробовал:
<pre lang="HTML"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title></title> <script src="jquery-3.3.1.min.js"></script> <link href="StyleSheet1.css" rel="stylesheet" /> </head> function CreateTable() { var rowCtr; var cellCtr; var rowCnt; var cellCnt; var myTableDiv = document.getElementById("myDynamicTable"); var table = document.createElement('Table'); table.border = '1'; table.id = 'myTable'; var tableBody = document.createElement('Tbody'); table.appendChild(tableBody); rowCnt = document.getElementById('txtrows').value; cellCnt = document.getElementById('txtcols').value; for (var rowCtr = 0; rowCtr < rowCnt; rowCtr++) { var tr = document.createElement('tr'); tableBody.appendChild(tr); for (var cellCtr = 0; cellCtr < cellCnt; cellCtr++) { var td = document.createElement('td'); td.width = '120'; td.appendChild(document.createTextNode("Row:" + rowCtr + " Column:" + cellCtr)); tr.appendChild(td); } } myTableDiv.appendChild(table); $(document).ready(function () { $('#myTable td').click(function () { var selected = $(this).hasClass('highlited'); $('#myTable tr').removeClass('highlited'); if (!selected) $(this).addClass('highlited'); }); }); } <form id="form1" runat="server"> <div id="myDynamicTable"> Creating a dyanamic Table <table> <tr> <td>Row: <asp:TextBox ID="txtrows" placeholder="No of Rows Here" runat="server" AutoCompleteType="Disabled"></asp:TextBox> <br /> <br /> </td> </tr> <tr> <td>Coloum: <asp:TextBox ID="txtcols" placeholder="No of Coloums Here" runat="server" AutoCompleteType="Disabled"></asp:TextBox> <br /> <br /> </td> </tr> <tr> <td> <asp:Button ID="btnCreateTable" Text="Create Table" runat="server" CssClass="btnStyle" OnClick="OnClickOfCreateTable" /> </td> </tr> </table> <br /> <br /> <asp:Button ID="btnMerge" Text="MergeCells" runat="server" CssClass="/> </div> </form> </body> </html>
littleGreenDude
Я не вижу, где вы вызываете CreateTable. Если я прав, то это выглядит так, как будто вы собираете количество строк и столбцов из введенных пользователем полей, а затем динамически создаете таблицу?
Если это так, то функция click в document ready не имеет ничего, к чему можно было бы прикрепиться, и никогда не будет запущена. Попробуйте добавить прослушиватель событий в логику создания таблицы.
tr.setAttribute('onclick', "(function(){ ChangeRow(); })()");