Как преобразовать / преобразовать в DOM, следуя структуре dl dt, в таблицу на лету, используя jQuery или d3 js в документе - PullRequest
0 голосов
/ 06 апреля 2020

Как преобразовать в DOM, следуя значениям dl dt, в таблицу на лету, используя jQuery или d3 js в документе. Строки могут иметь любой порядок элементов данных и некоторые отсутствующие столбцы ... Такое чувство, что это так требует транспонирования строк операций в столбцы

С

<div id="conatainer">
<dl class="table">
    <dt class="row">1</dt>
    <dd>
        <dl>
            <dt>name</dt>
            <dd>Tom Cruise</dd>
            <dt>age</dt>
            <dd>56</dd>
        </dl>
    </dd>
    <dt class="row">2</dt>
    <dd>
        <dl>
            <dt>dob</dt>
            <dd>April 4, 1965</dd>
            <dt>name</dt>
            <dd>Robert Downey Jr.</dd>
            <dt>age</dt>
            <dd>53</dd>
        </dl>
    </dd>
</dl>
</div>

К

<div id="conatainer">
<table>
    <thead>
        <tr>
            <th>s.no</th>
            <th>name</th>
            <th>age</th>
            <th>dob</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>Tom Cruise</td>
            <td>56</td>
            <td> </td>
        </tr>
        <tr>
            <td>2</td>
            <td>Robert Downey Jr.</td>
            <td>53</td>
            <td>April 4, 1965</td>
        </tr>
    </tbody>
</table>
</div>

1 Ответ

0 голосов
/ 06 апреля 2020

Установите идентификатор для таблицы и спрячьте ее изначально, затем используйте replaceWith

$('button').click(() => {
  const newTable = $('#new-table');
  newTable.show();
  $('dl').replaceWith(newTable);

});
dl{
  background: green
}

table{
  background: blue;
  display: none
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>replace</button>

<dl class="table">
    <dt class="row">1</dt>
    <dd>
        <dl>
            <dt>name</dt>
            <dd>Tom Cruise</dd>
            <dt>age</dt>
            <dd>56</dd>
        </dl>
    </dd>
    <dt class="row">2</dt>
    <dd>
        <dl>
            <dt>dob</dt>
            <dd>April 4, 1965</dd>
            <dt>name</dt>
            <dd>Robert Downey Jr.</dd>
            <dt>age</dt>
            <dd>53</dd>
        </dl>
    </dd>
</dl>

<table id='new-table'>
    <thead>
        <tr>
            <th>s.no</th>
            <th>name</th>
            <th>age</th>
            <th>dob</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>1</td>
            <td>Tom Cruise</td>
            <td>56</td>
            <td></td>
        </tr>
        <tr>
            <td>2</td>
            <td>Robert Downey Jr.</td>
            <td>53</td>
            <td>April 4, 1965</td>
        </tr>
    </tbody>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...