我希望在将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');
});
答案 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
过滤器:
$('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');