如果表具有类的子项,如何追加标题

时间:2015-06-20 14:48:28

标签: jquery

我有这个示例HTML,我想搜索正文并找到其中包含特定类的表中的任何表,然后将每个表标题附加到新创建的表。

因此,如果正文表包含类b.warning,请将表标题追加到#NEW div

     <body>

     <table>
      <tr><td><title>This Title</title></td></tr>
      <tr><td><b class="warning">Append this tables title</b></tr>
     </table>

     <table>
      <tr><td><title>This Title</title></td></tr>
      <tr><td><b>Do Not append this tables title</b></tr>
     </table>

     <table>
      <tr><td><title>This Title</title></td></tr>
      <tr><td><b class="warning">Append this tables title</b></tr>
     </table>

     <table>
      <tr><td><title>This Title</title></td></tr>
      <tr><td><b>Do Not append this tables title</b></tr>
     </table>

    <table id="NEW">APPEND TITLES HERE</table>

    </body>

我不熟悉jQuery,但试过这个

$(document).ready(function () {    

         $(body).find('table').has('b.warning').each(function (index, element) {

              var target = $("#NEW");

                if $(this).find("title").each(function () {   

                 target.append("<tr'><td>" + $(this)[0].outerHTML + "</td></tr>");

          });

});

1 个答案:

答案 0 :(得分:1)

请看这里:http://jsfiddle.net/pa5aLhma/2/

您的表格HTML不是很干净,我的意思是您有一些错误,您应该重新考虑使用title tag

根据您给我们的内容,我已将表格结构更改为

<table>
    <tr class="title">
        <td>
            This Title
        </td>
    </tr>
    <tr>
        <td>
            <b class="warning">Append this tables title</b>
        </td>
    </tr>
</table>

所以,如果你使用这个结构,你可以在jQuery中

$('table .warning').each(function() {

    var table = $(this).parents('table').first();

    table.find('tr.title').clone().removeAttr('class').appendTo('#NEW');

});

这显然不是最干净的方式,也不是最优化的方式,但它会起作用。