在 jquery 中传递一个 self 对象
Posted
技术标签:
【中文标题】在 jquery 中传递一个 self 对象【英文标题】:Passing a self object in jquery 【发布时间】:2011-04-14 16:27:40 【问题描述】:在下面的代码中,如何在 validate 函数中传递 div 对象
<div><input type="text"></input>   <a href="#" onclick="validate("Hot to pass the div objevt here")"</input>
<script>
function validate()
.....
.....
Finally remove the div
</script>
【问题讨论】:
【参考方案1】:html:
<div class='elementToRemove'>
<div>
<a href="#" onclick="validate(this)">some text</a>
</div>
</div>
function validate( elem )
$(elem).closest('div.elementToRemove').remove();
在validate()
函数中,elem
将表示接收到事件的<a>
元素。
然后你可以将它包装在一个 jQuery 对象中,use .closest()
获取第一个 <div>
祖先,use .remove()
将其从 DOM 中删除,并清理任何附加的数据,例如事件处理程序。
或者最好让 jQuery 处理您的事件处理程序:
HTML:
<div class='elementToRemove'>
<div>
<a href="#" class="someClassName">some text</a>
</div>
</div>
jQuery:
$('a.someClassName').click(function()
$(this).closest('div.elementToRemove').remove();
);
【讨论】:
如果这个 div 被另一个 div 包围了,我们可以做 $(this).closest('div').parent.remove();如果我们做 parent .remove() 我可以再次使用它 @rajeev.closest()
给出了与当前元素 api.jquery.com/closest 非常接近的元素,如果要删除 div 的父元素,只需提供对父元素的引用,即 ID 或类,现在在父元素上使用最接近的,这样既简单又省时,而不是从父元素开始调用parent()
(这很耗时)
@Rajeev - @Avinash 是对的。我更新了我的答案,举了一个例子,在你想用.closest()
定位的<div>
上放置一个类。【参考方案2】:
<div> blah blah <a href="#" id="remove" > Delete </a> blah blah </div>
$(function()
$('a#remove').click(function()
$(this).closest('div').remove();
);
);
【讨论】:
以上是关于在 jquery 中传递一个 self 对象的主要内容,如果未能解决你的问题,请参考以下文章