使用JQuery替换整个表行(包括)

时间:2012-06-26 11:27:56

标签: jquery

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

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

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

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

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

7 个答案:

答案 0 :(得分:23)

你几乎就在那里,只需使用jQuery replaceWith[jQuery docs]函数:

$("td#someid").parent().replaceWith(newtr);

答案 1 :(得分:3)

正确的功能是.replaceWith

$("td#someid").parent().replaceWith(newtr);

答案 2 :(得分:2)

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

$("td#someid").parent().replaceWith(newtr);

答案 3 :(得分:2)

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

$('#someid').parent().replaceWith(newtr);

答案 4 :(得分:1)

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

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

答案 5 :(得分:1)

请参阅此演示:http://jsfiddle.net/rathoreahsan/QXmTN/

<强> Jquery的

$("td#someid").parent().replaceWith(newtr);

答案 6 :(得分:1)

您还可以查看此JsFiddle

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

$("td#someid").parent().parent().html(newtr);