如何访问与引发事件的元素相关的特定div?

时间:2016-12-30 14:11:23

标签: jquery html css

我创建了一个网站,用户可以在其中提问并允许其他人回复。这些问题包含在div中,然后包含另一个div,其CSS属性为display: none

我在母亲div中有一个按钮,然后打开包含回复或评论表单的div。我的代码工作正常,

现在,我唯一的问题是每当我点击评论按钮时,它都会打开所有其他回复部分div,即使在用户未点击的问题中也是如此。

如何获取用户点击回复按钮的特定div,只打开该母版div的回复表单而不是所有其他回复表单?

1 个答案:

答案 0 :(得分:0)

jQuery的:

$(".button").click(function(){
    //here the button element is pointed by -this-!!!
    //so "this" is the element contained in your div...
    $(this).parent("questionDiv") //<- will point to the div that contain the button
    //so, having the button (this), you can get the parent element that contain the question and in it the mother div
});

.parent(),同时检查.closest().siblings()

希望这能澄清我从你的问题中理解的内容:)

我会假设一些事情......

DOM:您的HTML代码

<div class="mother">
    <div class="question">
        <button class="respBtn">Respond</button>
    </div>
    <div class="respond"> ..more elemnts.. </div>
</div>

jquery的:

 $(document).ready(function(){
        $(".respBtn").click(function(){
          console.log("click");
          //here goes the code that shows the div
            let moderDiv = $(this).parents(".mother");
            console.log(moderDiv.html());
            moderDiv.find("div.respond").each(function(){
              $(this).show();
          });
        });
    });

CSS:

   .respond{
       display : none ;
   }

这是一个例子...... jquery负责知道哪个按钮被按下了ans指向DOM的右边部分。

希望这能澄清我的想法:)