单击时选择元素的父级

时间:2017-01-11 18:20:25

标签: javascript jquery

总结一下,我正在尝试这样做,以便当用户点击页面上的特定元素时,页面会读取数据值并将其与可能值列表进行匹配,并将用户重定向到特定的URL。在价值上。

我坚持使用的部分是能够在单击元素时获取父元素的值。我需要元素的值为class =" 1"并且由于页面是唯一可行的,用户将点击具有class =" 3"的元素。

我正在使用简单的警报测试来查看是否可以访问该值。



document.onclick = function(event) {
  var target = event.target || event.srcElement;
  $tar = target;

  alert($(tar).parents().eq(2).attr("data"));
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="1" data="123">
  <div class="2">
    <div class="3">

      This is my DIV
    </div>
  </div>
</div>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

您可以使用closest来实现此目标。

如果你没有用数字开始你的课,那么很多会更容易,因为类选择器不能以未转义的数字开头。因此,如果我们将1,2和3更改为a,b和c(如果我们修正了拼写错误André pointed out),您将拥有:

document.onclick = function(event) {
  var target = event.target || event.srcElement;
  $tar = target;

  alert($($tar).closest(".a").attr("data"));
}
<div class="a" data="123">
  <div class="b">
    <div class="c">

      This is my DIV
    </div>
  </div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

(另请注意,您可以使用jQuery挂钩该事件处理程序,而不是使用onclick =。)

但如果你绝对不得不使用1,2和3(我推荐):

document.onclick = function(event) {
  var target = event.target || event.srcElement;
  $tar = target;

  alert($($tar).closest(".\\31").attr("data"));
}
<div class="1" data="123">
  <div class="2">
    <div class="3">

      This is my DIV
    </div>
  </div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

答案 1 :(得分:0)

如果你知道你只走了两步,那么下面应该没问题:

document.onclick = function(event) {
  var target = event.target || event.srcElement;
  $tar = target;

  alert($($tar).parent().parent().attr("data"));
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="a" data="123">
  <div class="b">
    <div class="c">

      This is my DIV
    </div>
  </div>
</div>