父母和appendto不能一起工作吗?
jquery.parents 和 jquery.appendTo 似乎不能一起工作,例如,我想仅向单击按钮的父元素
$('.local').click(function(){
var object = $(this);
var parent = object.parents('.block').css({background:'yellow'});
$('<li class="item"></li>').appendTo('.items',parent).html('\
<p>added</p>\
');
return false;
});
html 添加一个新元素,
<!-- block -->
<div class="block">
<ul class="items"></ul>
<ul class="menu">
<a href="#" class="local">add</a>
</ul>
</div>
<!-- block -->
<!-- block -->
<div class="block">
<ul class="items"></ul>
<ul class="menu">
<a href="#" class="local">add</a>
</ul>
</div>
<!-- block -->
<!-- block -->
<div class="block">
<ul class="items"></ul>
<ul class="menu">
<a href="#" class="local">add</a>
</ul>
</div>
<!-- block -->
因此当我单击第一个添加按钮时。 添加的段落应仅添加到第一个添加按钮的父级元素中,而不应添加到具有相同类名的其他父级元素中。
这是测试页面。
我可以修复它吗?或者我一定是编码错误了?
jquery.parents and jquery.appendTo seem don't work together, for instance, I want to add a new element to the clicked button's parent's element only,
$('.local').click(function(){
var object = $(this);
var parent = object.parents('.block').css({background:'yellow'});
$('<li class="item"></li>').appendTo('.items',parent).html('\
<p>added</p>\
');
return false;
});
html,
<!-- block -->
<div class="block">
<ul class="items"></ul>
<ul class="menu">
<a href="#" class="local">add</a>
</ul>
</div>
<!-- block -->
<!-- block -->
<div class="block">
<ul class="items"></ul>
<ul class="menu">
<a href="#" class="local">add</a>
</ul>
</div>
<!-- block -->
<!-- block -->
<div class="block">
<ul class="items"></ul>
<ul class="menu">
<a href="#" class="local">add</a>
</ul>
</div>
<!-- block -->
so when I click the first add button. the added paragraph should be added to the first's add button's parent's element only but not other parents which have the same class name.
Here is the test page.
Can I fix it? Or I must have coded it wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
.appendTo()
不能这样工作。试试这个:它应该是
.appendTo($('.items',parent))
,而不是.appendTo('.items',parent))
。.appendTo()
doesn't work that way. Try this:Instead of
.appendTo('.items',parent))
, it should be.appendTo($('.items',parent))
.试试这个:
示例。
请注意
on()
是在 jQuery 1.7 中添加的。我们将点击处理程序附加到任何具有
local
类的元素。单击时,它将向上遍历 DOM,直到找到类block
最接近的元素。它将背景颜色设置为黄色,然后选择具有类items
的子ul
。然后它附加新的li
元素。同时,我们还使用jQuery设置了li
的类和文本。Try this:
Example.
Please note that
on()
was added in jQuery 1.7.We attach the click handler to any element with class
local
. When clicked, it will traverse up the DOM until it finds the closest element with classblock
. It sets it background color to yellow then selects its childul
with classitems
. It then appends the newli
element. Meanwhile, we also set theli
's class and text with jQuery.