2009-12-22 80 views
0
<a rel="abc" href="#mydiv">link</a> 
<div id="mydiv">content</div> 

如果rel =“abc”,找到ID与href值匹配的元素并隐藏它。查找并隐藏div(jQuery)

我尝试:

$('[rel*=abc]').attr("href").hide(); 

感谢您的帮助!

+0

同意发生,这听起来确实很像功课 –

+0

我使用Facebox插件,我想隐藏内容的div自动上加载。这不是家庭作业,我可以发布代码,但在这种情况下,我不知道。 – 3zzy

+0

阅读关于属性选择器的文档:http://docs.jquery.com/Selectors –

回答

5
$($("a[rel='abc']").attr("href")).hide(); 
+0

不错,比我刚刚写的更好。也许把它放在$(document).ready(function(){})块中。 – tsdbrown

+1

(如果您的ID包含'.'或':',注意将失败。) – bobince

0
var identifier = $('a[rel="abc"]').attr('href'); 
$('#'+identifier').hide(); 

我认为这可能会解决您的问题。虽然我没有测试它。

+0

看起来像你有-1,因为你的选择器将是“## mydiv” –

+0

不知道这是否是这种情况。谢谢你的提示。 –

2
$('a[rel=abc]').click(function(event){ 
    event.preventDefault(); 
    $(event.target.href.substr(event.href.indexOf('#'))).hide(); 
}); 

如果单击此链接,则隐藏适当的元素。

编辑:测试

+1

可能想添加event.preventDefault()。或者至少返回假。 –

+0

当然。谢谢! – RamboNo5

2
$("a[rel='abc']").click(function(event){ 
    event.preventDefault(); 
    var val = $(this).attr("href"); 
    $("div"+val).hide(); 
}); 
1

$('a[rel=abc]').each(function() { $(this.href.substr(this.href.indexOf('#'))).hide(); });

一些错误检查将是一件好事。

1
$("a[rel=abc]").each(function(i, ele) { 
    $(ele.hash).hide(); 
}); 

,或者如果你想,要在点击

$("a[rel=abc]").click(function(e) { 
    e.preventDefault(); 
    $(this.hash).hide(); 
});