我想在<li>
标记上隐藏<a>
标记,点击jQuery。
<ul>
<li>
<a href="'>Something</a>
</li>
<li>
<a href="'>Something</a>
</li>
<li>
<a href="'>Something</a>
</li>
</ul>
换句话说,如果有人点击了链接(<a></a>
),其父级<li>
就会被隐藏。
答案 0 :(得分:7)
(function() {
$("ul li a").click(function(e) {
e.preventDefault();
$(this).parent().hide();
});
})(jQuery);
也尝试“一个”jQuery函数
(function() {
$("ul li a").one('click', function(e) {
e.preventDefault();
$(this).parent().hide();
});
})(jQuery);
答案 1 :(得分:4)
使用.click处理活动,然后使用.parent和.hide方法。
$("a").click(function(){
$(this).parent().hide(); // this is the link element that was clicked
})
上面的代码假定链接直接包含在列表元素(<li>
)中。如果不是这种情况,您可以将选择器传递给.parent
方法,如下所示:
$(this).parent("li").hide();
这将找到您的链接的祖先并返回<li>
的祖先。
返回错误
通常,当您点击<a>
标记时,浏览器将导航到标记的href。如果你不希望你可以从点击处理程序中return false;
或添加一个返回false的href:<a href="javascript:void(0)">Link</a>
。有关此in this question的更多讨论。
有很多不同的方法可以做到这一点
您可能需要更改代码,因为:
.preventDefault()
而不是返回false来阻止浏览器更改地址.click
,即您将使用Javascript添加链接(function() { /* code */})(jQuery);
。我不建议初学者使用它,虽然它可以帮助您稍后构建代码。基本上它可以帮助您避免代码中不必要的副作用,并允许您使用.noConflict。答案 2 :(得分:1)
尝试使用隐藏父项li
的内容并阻止单击超链接的默认操作。见http://api.jquery.com/event.preventDefault/:
$(function() {
$("a").click(function(e) {
e.preventDefault();
$(this).parent().hide();
});
});
答案 3 :(得分:1)
您可以使用.parent()
定位元素的父级,并使用.hide()
隐藏它。有关这些函数的用法的详细信息,请参阅jQuery文档。您还应该使用.preventDefault()
来阻止浏览器关注该链接。
$(function() {
$('a').click(function(e) {
e.preventDefault();
$(this).parent().hide();
});
});
答案 4 :(得分:1)
答案 5 :(得分:1)
$( "a" ).click( function(){
$( this ).parent().hide();
return false;
} );
工作示例可以在这里找到 http://jsfiddle.net/shinyakoizumi/aQanZ/
答案 6 :(得分:0)
$('a').click(function(){
$(this).parent('li').hide();
});