таблица внутри скрытого div становится видимой при добавлении tr динамически - PullRequest
0 голосов
/ 30 октября 2019

  $("#zz").click(function() {
 
                 $(this).closest("tr").after("<tr><td colspan='2'></td><td colspan='7'>" + $(this).next().html() + "</td></tr>");
            });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<html>
<body>
<table>
<tr>
<td>
<button id="zz" >zz</button>

<div id="data_hidden" style="display:none">
<table>
<tr>
<td>
Hidden data appears
</td>
</tr>
</table>
</div>
</td>
<td>
1
</td>
<td>
2
</td>
<td>
3
</td>
</tr>
<tr>
<td>
4
<td>
<td>
5
<td>
<td>
6
<td>

</tr>
</table>
</body>
</html>
<tr role="row" class="odd">
                            <td class="sorting_1">
                                <img class="plus" id="plus" src="../Images/plus.png" style="width: 2em;">
                                <div style="display:none">
                                    <table>
                                        <thead class="bg-blue">
                                            <tr>
                                                <th></th>
                                                <th>Established On</th>
                                                <th>Objective</th>
                                                <th>Target Value</th>
                                                <th>Baseline Value</th>
                                                <th>Monitorng mechanism</th>
                                                <th>Target Date</th>
                                                <th>Action Plan</th>
                                                <th>Frequency of Evaluation</th>
                                            </tr>
                                        </thead>
                                        <tbody>

                                                    <tr>
                                                        <td>
                                                            <img class="add" id="add" src="/Images/add.png" style="width: 2em;">
                                                            <div style="display:none">
                                                                <table>
                                                                    <thead class="bg-blue">
                                                                        <tr>
                                                                            <th>
                                                                                Objective Evaluated On
                                                                            </th>
                                                                            <th>
                                                                                Objective Measured Value
                                                                            </th>
                                                                            <th>
                                                                                From Period
                                                                            </th>
                                                                            <th>
                                                                                To Period
                                                                            </th>
                                                                            <th>
                                                                                Trend
                                                                            </th>
                                                                            <th>
                                                                                NCR Ref. (If Objective not achieved)
                                                                            </th>
                                                                            <th>
                                                                                Status of Objective Evaluation
                                                                            </th>
                                                                            <th>
                                                                                Objective Evidence
                                                                            </th>
                                                                        </tr>
                                                                    </thead>
                                                                    <tbody>
                                                                            <tr>
                                                                                <td colspan="8">
                                                                                    <div style="text-align: center;">
                                                                                        <h4 style="color: grey;">No data exists</h4>
                                                                                    </div>
                                                                                </td>
                                                                            </tr>
                                                                    </tbody>
                                                                </table>
                                                            </div>
                                                        </td>
                                                        <td>
09/07/2019                                                        </td>
                                                        <td> ww</td>
                                                        <td> ww</td>
                                                        <td> ww</td>
                                                        <td> ww</td>
                                                        <td>
09/07/2019                                                        </td>
                                                        <td>
                                                                <p>Not Available</p>
                                                        </td>
                                                        <td> Annually</td>
                                                    </tr>
                                        </tbody>
                                    </table>
                                </div>
                            </td>
                            <td>
                                1
                            </td>
                            <td>
                                <a data-toggle="popover" data-trigger="hover" href="/Objectives/ObjectivesDetails?Objectives_Id=3" id="3" onclick="HyperLinkProgressIconFunction()" data-original-title="" title="">ee</a>
                            </td>
                            <td>
                                2019
                            </td>
                            <td>
                                Department
                            </td>
                            <td>
                                HR DEPARTMENT
                            </td>

                            <td>
                                Shilpa jay bhat,Lavita p Pereira,chandramouli b cc
                            </td>
                            <td>
                                Approved
                            </td>


                            <td>
                                    <span class="badge badge-info">No File attached</span>
                            </td>



                            <td>

                                    <a href="/Objectives/ObjectivesEdit?Objectives_Id=3" title="Edit Objective details" onclick="HyperLinkProgressIconFunction()">
                                        <span class="badge badge-info">Edit</span>
                                    </a>

                            </td>

                                <td>



                                    <span class="badge badge-danger" title="Delete Internal Document" onclick="DeleteItems(3)" style="cursor:pointer;">Delete</span>
                                </td>
                        </tr>

Выше приведен только пример строки из моей таблицы.

После добавления $(this).closest("tr").after("<tr><td colspan='2'></td><td colspan='9'>" + $(this).next().html() + "</td></tr>"); при нажатии кнопки нажмитетаблица становится видимой в новом <tr>

Насколько я знаю, очевидно, что она была добавлена ​​непосредственно в tr, так как для дисплея установлено значение none, элементы dom работают так? Самое большее, я начинающий, когда дело доходит до html.

Может кто-нибудь объяснить, почему это происходит?

Любая важная информация будет принята с благодарностью.

1 Ответ

0 голосов
/ 30 октября 2019

Ваш выбор (используя html()) возвращает содержимое элемента, а не сам элемент, поэтому любые атрибуты элемента также не учитываются. Одним из простых решений может быть перемещение ваших стилей скрытия на уровень:

<div id="data_hidden">
    <table style="display:none">
        <tr>
            <td>
                Hidden data appears
            </td>
        </tr>
    </table>
</div>

Демо 1

Это оставляет оригинальный элемент div вDOM, но это не влияет на внешний вид.

В качестве альтернативы, возьмите outerHTML необработанного элемента выделения:

$(this).closest("tr").after("<tr><td colspan='2'></td><td colspan='7'>" 
    + $(this).next().get(0).outerHTML + "</td></tr>");
});

Демонстрация 2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...