0

リンクをクリックすると、右側の p (前の表の行) にテキストを挿入する必要があります。

これはhtmlです:

<table>
<tr>
    <td>
        <p class='MyClass'>NOT HERE</p>
    </td>
</tr>
<tr>
    <td>
        <p class='MyClass'>NOT HERE</p>
    </td>
</tr>
.
. //Many table rows
.
<tr>
    <td>
        <p class='MyClass'>HERE I WANT TO INSERT THE TEXT</p>
    </td>
</tr>
<tr>
    <td>
        <div>
             <a href='#' class='MyLink'>insert text</a>
        </div>
    </td>
</tr>
</table>

これはjqueryです:

$('.MyLink').click(function() {
    HOW CAN I MAKE SOME TEXT GO INTO THE RIGHT <p> HERE?
});
4

3 に答える 3

1
$(this).closest('tr').prev('tr').find('.myClass').html('text here');

(未テスト)

于 2009-12-11T22:13:06.113 に答える
0

本当に簡単な方法の 1 つは、次のように指定することです。

<p class='MyClass'>HERE I WANT TO INSERT THE TEXT</p>

クラスまたは ID を直接参照できるようにします。例えば:

<p id="insertHere" class='MyClass'>HERE I WANT TO INSERT THE TEXT</p>

次に、次のようなことができます。

$('.MyLink').click(function() {
    $("#insertHere").text($("#insertHere").text() + "SOME TEXT YOU WANT TO INSERT");
});

"insert into" P を別の方法で指定したい場合は、セレクターを "#insertHere" から挿入先の P を定義するものに変更するだけです。

また、次のように考えています。

$('.MyLink').click(function() {
    $("#insertHere").append("SOME TEXT YOU WANT TO INSERT");
});

も機能します(そして短くなります)が、100%確実ではありません(最初にテストしてください)。

于 2009-12-11T22:13:26.130 に答える
0
$(this).parents('tr:first').prev('tr').find('.myClass').html("The Text that you want");

.parents は dom をリンクの上の最初の tr に移動し、次に prev('tr') は前の行に移動し、最後に find は tr を下方向に検索して ".myClass" クラスを持つすべての要素を探します。

于 2009-12-11T22:24:16.173 に答える