jquery,我如何选择attr href目标隐藏

时间:2010-02-06 05:05:51

标签: javascript jquery

$('a.minimize').click(function() {
$($(this).attr('href')).hide();
});

<div class="drag" id="2">

<a href="#content" class="minimize" style="display: none;">2</a></p>
    <div id="content">1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br /></div>
</div>

我想通过设置a href =“”隐藏#content,为什么不起作用?

任何错误?

6 个答案:

答案 0 :(得分:1)

至少在我看来,你的想法真的不清楚。您得到的答案是正确的,因为如果您希望href属性为空,则不使用hide。但这里是我困惑的地方:

  1. 您已为display:none设置<a>,这意味着它根本不会显示。那么用户如何点击他们无法与之交互的内容?

  2. 您希望在点击后隐藏<a>。如果我不得不猜你要么:

    一个。在用户点击之后,使链接(显示的2)消失,或者 湾您希望用户只需点击一次链接,之后就会变成一个死链接,因为它没有指向任何内容。

  3. 所以,假设我对你的目标一无所知,点击链接就死了,按照已经给出的建议

     $('a.minimize').click(function() {
          $(this).attr('href', ''); 
     });
    

    如果您希望链接在点击时消失,请执行以下操作:

     $('a.minimize').click(function() {
          $(this).hide(); 
     });  
    

    或者我完全忽略了这一点?

答案 1 :(得分:0)

hide()不是在属性上使用的正确函数。它用于设置DOM元素的可见性。

请改为尝试:

$(this).attr('href', '');

答案 2 :(得分:0)

.hide()是不同的。你应该这样。

$(this).attr('attr','value here')

$($(本).attr( 'href' 属性, ''));

答案 3 :(得分:0)

将您的锚标记事件处理程序包含在文档就绪函数中。

$(function(){
    $('a.minimize').click(function() {
        $($(this).attr('href')).hide();
    });
});

答案 4 :(得分:0)

嗯..从哪里开始.. 首先,如果你没有显示可点击的元素,它将永远不会工作。所以你必须删除style =“display:none”,如下所示:

<div class="drag" id="2">

<a href="#content" class="minimize" >2</a></p>
    <div id="content">1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br /></div>
</div>

秒。如果你不插入脚本标签,javascript将无法工作。 最后也是最重要的是你无法在浏览器加载之前尝试获取元素a.minimize。所以你要么输出或者在输出元素的html之后执行脚本,要么使用元素jQuery(document)的ready事件安全地执行它。所以这里是代码工作:

<script>

jQuery(document).ready(function(){
$('a.minimize').click(function() {

$($(this).attr('href')).hide();
});
});
</script>

<div class="drag" id="2">

<a href="#content" class="minimize" >2</a></p>
    <div id="content">1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br /></div>
</div>

答案 5 :(得分:0)

如果我理解正确,当您点击“最小化”类的链接时,您希望隐藏ID为“content”的div。

这是正确的方法:

$("a.minimize").click(function() {
    $("#content").hide();
});

或者,如果您想在点击链接时切换id为“content”的div的状态,请尝试以下操作:

$("a.minimize").click(function() {
    $("#content").toggle();
});