9

<tr>ここで他の例を見てきましたが、それらは、を含む行全体ではなく、の内容を置き換えているようです<tr>

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

次のコードは、のinnerHTMLのみを置き換えるようです<tr><tr>行が折りたたまれるように、を含むすべてを交換する必要があります。このコードが行を完全に置き換えるかどうかを誰かが確認できますか?

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

全体が置き換えられているとは思わない理由<tr>は、行が折りたたまれていないためです。ただし、JQueryの外部でHTMLをテストしたところ、正常に機能しています。

4

7 に答える 7

26

もうすぐです。jQuery replaceWith[jQuerydocs]関数を使用してください。

$("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

この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 に答える
1

このデモを参照してください: http://jsfiddle.net/rathoreahsan/QXmTN/

Jクエリ

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