9

我在这里查看了其他示例,但它们似乎正在替换 a 的内容,<tr>而不是整个行,包括<tr>.

<table>
    <tr style="display:block">
        <td id="someid">Test</td>
        <td>Some text</td>
    </tr>
</table>

下面的代码似乎只替换了<tr>. 我需要替换所有内容,包括该<tr>行将折叠。任何人都可以确认此代码是否完全替换了该行:

var newtr = "<tr style='display:none'><td id='someid'></td><td></td></tr>"
$("td#someid").parent().html(newtr);

我不认为整个<tr>被替换的原因是因为该行没有折叠 - 尽管我已经在 J​​Query 之外测试了 HTML 并且它工作正常。

4

7 回答 7

26

你快到了,只需使用 jQuery replaceWith[jQuery docs]函数:

$("td#someid").parent().replaceWith(newtr);
于 2012-06-26T11:30:30.757 回答
3

正确的功能是.replaceWith

$("td#someid").parent().replaceWith(newtr);
于 2012-06-26T11:30:39.580 回答
2

如果您尝试替换对象,而不是其内容:

$("td#someid").parent().replaceWith(newtr);
于 2012-06-26T11:30:46.393 回答
2

使用 jquery 的 replaceWith 方法替换元素。

$('#someid').parent().replaceWith(newtr);
于 2012-06-26T11:31:10.110 回答
1

如果您更喜欢 HTML 技术而不是切换元素,请尝试以下操作:

你说这不会取代 tr 元素是正确的。.html("...") 替换元素的内部 HTML(在本例中为 tr)。使用 JavaScript outerHTML 来实现:$("td#someid").parent().get(0).outerHTML = newtr;

于 2012-06-26T11:32:00.440 回答
1

看到这个演示:http: //jsfiddle.net/rathoreahsan/QXmTN/

jQuery

$("td#someid").parent().replaceWith(newtr);
于 2012-06-26T11:35:34.097 回答
1

你也可以检查这个JsFiddle

var newtr = "<tr style='display:none'><td id='someid'></td><td></td></tr>";

$("td#someid").parent().parent().html(newtr);
于 2012-06-26T11:44:08.073 回答