我在这里查看了其他示例,但它们似乎正在替换<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并且它工作正常。
答案 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);