如何使用jQuery从div内部获取ID

时间:2018-09-19 09:39:28

标签: javascript jquery

如何从内部div获取ID。我有很多div具有类控制功能,但我想获取父div ID。如何获得?

http://jsfiddle.net/cngt2ef6/7/

$(".getid").click(function() {
   alert($(this).closest('div').hasClass("control).attr("id"))
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="control" id="spa">
  Content
</div>
<div class="control" id="test">
  <div class="method">
    <a href="#" class="getid">Getid</a>
  </div>
</div>
<div class="control" id="awesome">
  Content
</div>

2 个答案:

答案 0 :(得分:5)

问题来自:

  1. 将返回第一个父项closest的{​​{1}}选择器(这里我们不需要什么)。
  2. hasClass() ,因为如果元素具有给定的类,它将返回一个布尔值。 (在您的情况下,第一个父母没有给定的课程div

除了使用control之外,还需要直接在hasClass()方法中使用class选择器,例如:

closest()

$(this).closest('div.control').attr("id");
$(".getid").click(function() {
  console.log($(this).closest('div.control').attr("id"));
})

答案 1 :(得分:1)

除了closest()(返回第一个单节点父对象)之外,您可以使用parents(),但是在这种情况下,将返回多个以element / class / id为目标的节点。

在这种情况下,它只是closest()的替代方式

$(".getid").click(function() {
  console.log($(this).parents('.control').attr("id"))
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="control" id="spa">
  Content
</div>
<div class="control" id="test">
  <div class="method">
    <a href="#" class="getid">Getid</a>
  </div>
</div>
<div class="control" id="awesome">
  Content
</div>