如何使用jQuery找到最近的元素?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (578)

我有以下HTML代码:

<td>
  <input type="text" size="40" value="" name="related_image" id="related_image">  
  <input type="button" class="button addImage" value="Get image url">
</td>
<td>
  <input type="text" size="40" value="" name="alternative_image" id="alternative_image">  
  <input type="button" class="button addImage" value="Get image url">
</td>

我需要知道我点击哪个按钮,然后添加一些文本到最近的输入文本字段。

如果我单击第一个按钮<td>,然后我需要将一些文本输入到related_image文本字段。

我尝试过使用下面的jQuery,但它没有工作:

jQuery('.addImage').click(function() {
  var tmp = jQuery(this).closest("input[type=text]").attr('name');
  alert(tmp);
});
提问于
用户回答回答于

试着:

var tmp = $(this).siblings(":text").attr("name");

closest()方法查找最近的父类,这不是你想要的。

用户回答回答于

.closest()找到父类,在这种情况下,你需要.siblings(),就像这样:

jQuery('.addImage').click(function() {
  var tmp = jQuery(this).siblings("input[type=text]").attr('name');
  alert(tmp);
});

或者,如果格式总是像你的示例一样一致,只需使用.prev(),就像这样:

jQuery('.addImage').click(function() {
  var tmp = jQuery(this).prev().attr('name');
  alert(tmp);
});

扫码关注云+社区

领取腾讯云代金券