jquery遍历问题,插入文本

时间:2009-12-11 22:10:04

标签: jquery traversal

我有一个非常简单的jquery问题,我无法正确,当点击链接时,我需要在右边的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?
});

3 个答案:

答案 0 :(得分:1)

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

(未测试的)

答案 1 :(得分:0)

一个真正简单的方法是:

<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");
});

如果您想以其他方式指定“插入”P,只需将选择器从“#insertHere”更改为定义要插入哪个P的选择器。

另外,我认为:

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

也会起作用(并且更短),但我不是100%肯定(所以先测试)。

答案 2 :(得分:0)

$(this).parents('tr:first').prev('tr').find('.myClass').html("The Text that you want");

.parents将dom带到你链接上方的第一个tr,然后prev('tr')带你到前一行,最后find查找tr以查找具有“.myClass”类的所有元素。