HTML:
<div class="a">
<div class="g"></div>
<a class="e">Link</a>
<div class="g"></div>
<a class="e">Link</a>
</div>
每当我点击链接时,我想用类“g”隐藏div。只有那个特定的链接。假设如果我点击第一个链接那么第一个div与类“g”应该只隐藏。现在我已经完成了。
Jquery的:
$('.e').click(function(){
c();
});
function c(){
$(.g).hide();
}
但这隐藏了“g”类的所有元素。
带有“g”类和链接的div都是由用户动态生成的,我不知道用户可以生成多少。
答案 0 :(得分:2)
Currenctly你正在调用$('.g').hide()
,它选择所有带有g作为类的元素并将它们全部隐藏起来。
而是使用prev()
选择要隐藏的元素
$('.e').click(function(){
jQuery(this).prev().hide();
});
根据评论更新:
您可以使用此代码:
$('.e').click(function(){
c(this);
});
function c(element){
$(element).prev().hide();
}
答案 1 :(得分:2)
试试这个:
$(".e").click(function(){
$(this).closest("div.g").hide();
})
或:
var elem = "";
$(".e").click(function(){
elem = $(this).closest("div.g");
c(elem);
})
function c(elem) {
$(elem).hide();
}
答案 2 :(得分:1)
使用函数c():
$('.e').click(function(){
c(this);
});
function c(element){
$(element).prev().hide();
}
答案 3 :(得分:0)
您可以使用jQuery each()方法实现此目的,您的HTML保持不变,JavaScript如下;
$(".e").each(function () {
// $(this) refers to that particular link not all the links.
$(this).click(function (e) {
/**
* as a precaution for preventing anchor
* to redirect/scroll to location defined in "href" attribute
*/
e.preventDefault();
$(this).prev(".g").hide();
});
});