2017-09-26 75 views
-6

我已经创建了一些潜水,我想要在用户单击时<span class="rp-r" style=""><i class="fa fa-reply"></i></span>此文本区域<textarea id="text6" class="reply" name="reply" placeholder="Type Your Reply Here"></textarea>隐藏。如何隐藏这个Textarea?

<div class="reply-cm" style="display: block;"> 
 
    <textarea id="text6" class="reply" name="reply" placeholder="Type Your Reply Here"></textarea> 
 
    <button onclick="reply(6)" class="btn">Reply</button> 
 
    <div id="reply6"> 
 
     <div class="replyes"> 
 
      <span class="rp-r" style="">Hide</span> 
 
     </div> 
 
    </div> 
 
</div>

+0

不行,我得在PHP中环和我有更多的一个有这个类,我需要使用选择。 –

+0

纯粹的代码写入请求是关于堆栈溢出的话题 - 我们期望 这里的问题与*特定的*编程问题有关 - 但我们 会很高兴地帮助你自己编写它!告诉我们 [你试过的东西](https://stackoverflow.com/help/how-to-ask),以及你卡在哪里。 这也将帮助我们更好地回答你的问题。 – glennsl

回答

0

采用javascript

<script> 
    function hide_rpr(y) { 

      var x = document.getElementById(y); 

       x.style.display = 'none'; 
     } 
    </script> 

然后

<span class="rp-r" onclick="hide_rpr(<?php echo $idexample ?>)" style="">Hide</span> 
+0

不,我有一个PHP循环,我有更多的人有这个类我需要使用选择器。 –

+0

分享php代码 – Adaleni

+0

https://jsfiddle.net/ec7kdLvu/1/ –

0

<div class="reply-cm" style="display: block;"> 
 
    <textarea id="text6" class="reply" name="reply" placeholder="Type Your Reply Here"></textarea> 
 
<button onclick="reply(6)" class="btn">Reply</button> 
 
    <div id="reply6"> 
 
      <div class="replyes"> 
 
      <span class="rp-r" style="" onclick="document.getElementById('text6').style.display='none'">Hide</span> 
 
     </div> 
 
    </div> 
 
</div>

0

Demo

document.getElementById('hide').onclick = function hideStuff() { 
    if(document.getElementById('text6').style.display == 'none'){ 
     document.getElementById('text6').style.display = ''; 
     document.getElementById('hide').innerHTML = "Hide"; 
    } else { 
     document.getElementById('text6').style.display = 'none'; 
     document.getElementById('hide').innerHTML = "Show"; 
    } 
} 
0

这是最好的隐藏通过CSS类的元素。如果你这样做,你可以任何你想要的方式隐藏它。随着display:noneposition:absolute; left:-10000px;(不推荐),visibility:hidden ...

如果直接操纵内嵌样式其他答案建议,您的布局将取决于JavaScript的,这是坏在我看来。我认为最好是JavaScript处理逻辑和CSS处理样式。


这与reply-cm类的所有元素代码搜索,发现里面他们与js-hide所有元素。然后,它将一个click事件监听器添加到所有js-hide元素中,在这些元素中它们隐藏其各自的reply-cm元素。

function bindHide(target, trigger) { 
 
    trigger.addEventListener("click", function() { 
 
    target.classList.add("is-hidden"); 
 
    }); 
 
} 
 

 
function bindHideEvents() { 
 
    var replies = document.getElementsByClassName("reply-cm"); 
 

 
    for (var i = 0; i < replies.length; i++) { 
 
    var buttons = replies[i].getElementsByClassName("js-hide"); 
 

 
    for (var i2 = 0; i2 < buttons.length; i2++) { 
 
     bindHide(replies[i], buttons[i]); 
 
    } 
 
    } 
 
} 
 

 
bindHideEvents();
.is-hidden { 
 
    display: none; 
 
}
<div class="reply-cm"> 
 
    <textarea id="text6" class="reply" name="reply" placeholder="Type Your Reply Here"></textarea> 
 
    <button onclick="reply(6)" class="btn">Reply</button> 
 
    <div id="reply6"> 
 
     <div class="replyes"> 
 
      <span class="rp-r js-hide">Hide</span> 
 
     </div> 
 
    </div> 
 
</div>

下面是与jQuery一个解决方案:

$(".js-hide").click(function (e) { 
 
    $(this).closest(".reply-cm").addClass("is-hidden"); 
 
});
.is-hidden { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="reply-cm"> 
 
    <textarea id="text6" class="reply" name="reply" placeholder="Type Your Reply Here"></textarea> 
 
    <button onclick="reply(6)" class="btn">Reply</button> 
 
    <div id="reply6"> 
 
     <div class="replyes"> 
 
      <span class="rp-r js-hide">Hide</span> 
 
     </div> 
 
    </div> 
 
</div>