使用 jQuery 获取悬停标签时相关输入的值

Get the value of the related input on hovering a label using jQuery

我正在尝试获取鼠标悬停在标签上时的输入值。我该如何处理?

HTML

       <label class="target">
         <input type="radio" name="hello" value="hi" class="greeting">
         <span>Hi</span>
       </label>
      <label class="target">
         <input type="radio" name="hello" value="hello" class="greeting">
         <span>Hello</span>
       </label> 

单选按钮被隐藏,因此当鼠标悬停在标签上时,它悬停在 span 元素上。

我只得到第一个元素,'hi' in jQuery。

$('.target').hover(function() {
   alert('hovering: ' + $('.greeting').val());
})

我想显示每个值。

使用事件处理程序并在上下文中获取输入元素。

$('.target').hover(function() {
  console.log($('input', this).val());
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class="target">
  <input type="radio" name="hello" value="hi" class="greeting">
  <span>Hi</span>
</label>
<label class="target">
  <input type="radio" name="hello" value="hello" class="greeting">
  <span>Hello</span>
</label>

$('label').hover(function(){
alert($(this).find('input').val())
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class="target">
  <input type="radio" name="hello" value="hi" class="greeting">
  <span>Hi</span>
</label>
<label class="target">
  <input type="radio" name="hello" value="hello" class="greeting">
  <span>Hello</span>
</label>

使用.find()

内部悬停函数 $('.greeting').val() 将获取第一个输入框的值,无论悬停在任何标签上。所以要获取受尊重的输入的值必须使用 $(this).find('.greeting').val()

$('.target').hover(function() {
   alert('hovering: ' + $(this).find('.greeting').val());
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class="target">
  <input type="radio" name="hello" value="hi" class="greeting">
  <span>Hi</span>
</label>
<label class="target">
  <input type="radio" name="hello" value="hello" class="greeting">
  <span>Hello</span>
</label>

你可以这样试试:

$(document).ready(function() {
 $("label").on("mouseover", function(e) {
  alert($(this).find("input").val());
 });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<label class="target">
     <input type="radio" name="hello" value="hi" class="greeting">
     <span>Hi</span>
</label>
<label class="target">
     <input type="radio" name="hello" value="hello" class="greeting">
     <span>Hello</span>
</label>