我怎么能在jQuery中说这个?

时间:2011-07-10 04:40:58

标签: javascript jquery

我希望在将2个div关闭到扇区元素之后附加一些文本。

<a href="" class="thingIClicked">Click me</a>
</div>
</div>

// this is where I want to append the text

我的代码在链接后附加文本。我该如何说“在第二个结束div之后追加它?”

$('a.thingIClicked').click(function() {
    $(this).append('hello');
});

5 个答案:

答案 0 :(得分:6)

最直接的方法是找到第二个parent <div>元素,然后插入文本after

$('a.thingIClicked').click(function() {
    $(this).parent("div").parent("div").after("some text");
});

这会将文本插入第二个<div>父项的外部。使用append()会将文本放在父级内部,从您的示例中看似不是您想要的内容。

答案 1 :(得分:2)

可能有更优雅的解决方案,但如何:

$('a.thingIClicked').click(function() {
    $(this).parent().parent().after('hello');
});

编辑:@Zack是正确的(并且可能应该得到这个答案的功劳) - 我的原始代码会将文本添加到第二个封闭{{ 1}},而不是之后。我已相应地编辑了上面的代码。

答案 2 :(得分:1)

最简单的方法是给外div id,然后使用$("#outerdivid")

编辑:下面不起作用,但留待此处参考 但是,您还应该能够使用jquery :parent过滤器:

http://api.jquery.com/filter/

$('a.thingIClicked').filter(':parent').filter(':parent').click(/**/);

答案 3 :(得分:0)

使用.insertAfter() http://api.jquery.com/insertAfter/

<div class="container">
  <h2>Greetings</h2>
  <div>Hello</div>
  <div class="inner">Goodbye</div>
</div>

我们可以创建内容并一次插入几个元素之后:

$('<p>Test</p>').insertAfter('.inner');

答案 4 :(得分:-1)

使用.insertAfter() - http://api.jquery.com/insertAfter/

<div class="container">
  <h2>Greetings</h2>
  <div>Hello</div>
  <div class="inner">Goodbye</div>
</div>

我们可以创建内容并一次插入几个元素之后:

$('<p>Test</p>').insertAfter('.inner');