给出以下代码:
<div class="parent">
<div id="div1"></div>
<div id="div2">
<div>Elemnt is here</div>
</div>
</div>
$("#rembook").live('click', function () {
var cur = $(this);
var ID = cur.attr('class').substring(4);
cur.parent('.div').fadeOut('slow');
});
我希望在有人点击它时隐藏父div。 我用来隐藏的代码不起作用。在jQuery中有没有其他技巧可以做到这一点?
答案 0 :(得分:2)
如果那是你的确切代码,那就有几个错误。
$("#rembook")
这不会选择任何内容,因为HTML中没有rembook
id的任何对象。
考虑到这只是示例中的一个错误(我猜它应该是#div1,或#div2),另一个问题是
cur.attr('class').substring(4)
cur
变量,应为div1
,没有类属性,因此cur.attr('class')
将为空,cur.attr('class').substring(4)
将抛出错误,阻止你运行JavaScript代码。
最后,代码cur.parent('.div')
的这一部分将不会选择任何内容,因为您选择的是具有类div
(示例<div class='div>
)的父元素,它应该是< / p>
cur.parent('div').fadeOut('slow');
或者只是
cur.parent().fadeOut('slow');
答案 1 :(得分:2)
首先,#rembook
不在您的示例代码中,因此我认为没有理由为什么它会起作用。
其次,除了parent()
之外,您可能需要closest()
,以防您需要隐藏的元素不是直接父级并且位于dom树的上方。
答案 2 :(得分:1)
类似
$(this).parent()
答案 3 :(得分:1)
我假设您的HTML代码如下:
<div class="parent">
<div id="div1">Test</div>
<div id="div2">Test</div>
<div id="rembook">Button</div>
</div>
您的问题是隐藏ID rembook的父级。
您可以使用父方法:
$("#rembook").live('click', function () {
var cur = $(this);
cur.parent().fadeOut('slow');
});
希望它可以帮助..
答案 4 :(得分:0)
你试过$.parent("div1")