javascript - 在 javascript 或 css 中定位前一个 div

标签 javascript jquery css

HTML代码:

<div class="content">
   <textarea> hello.png </textarea>
</div>

<div class="content-btn">
   <a href="#" class="button"> Click me </a>
</div>

Javascript 代码:

  $(".button").click(function() {
    if ($(this).parent().previousSibling('.content').css('display') == 'none'){
      $('.content').hide();
      $(this).parent().previousSibling('.content').show();
    }else {
      $('.content').hide();
    }
  });

如果不是在 javascript 中,最好在 css 中单击或悬停“Cick me”时,我将如何只显示文本区域。谢谢大家

https://jsfiddle.net/uway5hhg/8/

最佳答案

作为练习,您可以在纯 css 中实现此效果(使用 :target 伪类和简单转换中的长时间延迟),如果您在文本区域

http://codepen.io/anon/pen/JYoMRK


<div class="content" id="text">
   <textarea> hello.png </textarea><br />
   <a href="#close" class="button">Close</a>
</div>

<div class="content-btn">
   <a href="#text" class="button">Open</a>
</div>

CSS

#text { 
  overflow: hidden;
  height: 0;
  opacity: 0;
  transition: opacity 0s 999999s;
}
#text:target {   
  opacity: 1;
  height: auto;
  transition-delay: 0s;
}

#text:target ~ div a.button { display: none; }

无论如何,如果您寻找直接的 jQuery 方法,一个简单的 toggle() 就足够了(您可能必须通过 css 隐藏 .content 元素,具体取决于初始你的文本区域的状况)

https://jsfiddle.net/uway5hhg/39/

$(".button").click(function() {
    var content = $(this).parent().prev('.content');
    content.toggle();
});

关于javascript - 在 javascript 或 css 中定位前一个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32395914/

相关文章:

javascript - 单击页面上的任意位置时如何从元素中删除类?

javascript - 无法从 <?!=JSON.stringify(dataFromServerTemplate) ?> 中包含的数据中选择特定元素

Javascript 不适用于 PS3 浏览器

jquery - 如何通过数字选择某个对象?

javascript - 在 javascript 中使用应用模板

javascript - 如何在 React 类渲染方法中为元素提供动态类名

javascript - 使用 RequireJS 和 JQuery onclick 事件处理 "this"

c# - 日期选择器未设置阿拉伯文化中的日期

asp.net - 文本 - 空文本节点问题

twitter-bootstrap - Bootstrap 4 容器有一半到达边缘