0

我有一张这样的桌子:

<div id="evttbldiv">
      <table id="eventtbl">
          <tr class="headers">
            <th>Evento</th>
            <th>Artista(s)</th>
            <th>Local</th>
            <th>Data</th>
            <th></th>
          </tr>
        <tr class="rowdata">
          <td class="lfm_event"></td>
          <td class="lfm_artists"></td>
          <td class="lfm_venue"></td>
          <td class="lfm_date"></td>
          <td><div class="arrow"></div></td>
        </tr>
        <tr class="rowinfo">
            <td colspan="5">
              hello
            </td>
        </tr>
      </table>
    </div>

我的查询:

container = $('#evttbldiv').html();
    console.log(container);
    $('.headers', container).remove();
    console.log(container);

我想要做的是删除标题行并放置其余部分(中间的所有内容和变量中<tr class="rowdata">的最后一个。但是,即使使用那行代码,它也不会删除我的 JQuery 中的标题。trcontainer

console.log(container)在两种情况下都显示相同的输出。

4

3 回答 3

3

问题是您在将项目转换为 HTML 后尝试使用 jQuery 来影响项目的 DOM。相反,clone()它,然后remove()其转换为 HTML:.header

container = $('#evttbldiv').clone();
$('.headers', container).remove();
console.log(container);

// And if you need the HTML...
container_html = container.html();
console.log(container_html);

小提琴:http: //jsfiddle.net/mstauffer/98XMj/1/

于 2012-10-21T15:51:08.860 回答
0

尝试:

var $tds = $("#eventtbl .header th");

$("#eventtbl .header").remove()

// now append what is stored in $tds to whatever you want
$(".whateverYouWant").append($tds);
于 2012-10-21T15:54:39.327 回答
0

使用 jQuery 方法的链接,您可以在一行中创建完全修改的表对象,并且不需要使用html()方法,因为您可以附加 jQuery 对象本身。

var $modifiedTable = $('#evttbldiv').clone().find('.headers').remove().end()

$('#someElement').append( $modifiedTable )

或转换为 html 字符串

console.log( $modifiedTable.html())
于 2012-10-21T16:30:21.877 回答