如何通过单击div单击单选?

时间:2019-02-04 13:59:04

标签: javascript jquery

为什么我的代码不起作用?我需要模拟单击单选按钮。单选按钮具有点击事件。

$(".form-group").click(function() {
  alert("clicked")
  $(this).closest(".hotelObj", function() {
    $(this).trigger("click");
  })
});
.form-group {
  background-color: pink;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="form-group">
  <label for="male" style="font-weight:800;">chose
    <input type="radio" value="z6" class="hotelObj" name="hotelType">
    <p>description</p>
  </label>
</div>

3 个答案:

答案 0 :(得分:2)

鉴于您提供的标记,除非您没有其他要求,否则不需要JavaScript即可完成此任务。

由于label包含了您希望点击处理程序影响的所有区域,因此它应该可以按原样工作(在粉红色框中单击任何位置都会使单选按钮变为选中状态。)

.form-group {
  background-color: pink;
}
<div class="form-group">
  <label style="font-weight:800;">chose
    <input type="radio" value="z6" class="hotelObj" name="hotelType">
    <p>description</p>
  </label>
</div>

答案 1 :(得分:1)

您的代码无法正常工作,因为您正在使用.closest() jquery方法,该方法将查找从其自身开始然后在DOM树中向上的元素。 永远不会找到带有类.hotelObj的元素。

您需要使用.find()方法来查找.hotelObj,因为它位于.form-group中。

$(".form-group").click(function() {
  $(this)
     .find(".hotelObj")
     .trigger("click");
});

答案 2 :(得分:1)

jq "if .maxHeight then .maxHeight = null else . end "