给出以下html:
<input name="name goes here" type="text" value="value goes here">
<span class="suggestInput" data-type="tag">
<img src="../images/icons/wand.png" title="Suggest an input" alt="">
</span>
我试图找到最近输入的名称属性值,上面的类'suggestInput'上面的那个。在我的示例中,它应该返回 name goes here
我试过了:
$(".suggestInput").click(function(event) {
event.preventDefault();
var test1 = $(this).closest("input").attr("name");
var test2 = console.log($(this).find().closest("input").attr("name"));
});
他们都返回'undefined'..
怎么了?
答案 0 :(得分:4)
.closest()用于查找祖先元素,在您的情况下,input元素不是span.suggestInput
元素的祖先元素,它是前一个兄弟,所以使用.prev()来查找它
var test1 = $(this).prev("input").attr("name");
答案 1 :(得分:1)
您可以在此处使用.prev()
,因为input
是您的范围的前一个兄弟:
var test1 = $(this).prev().attr("name");
.closest()
无效,因为此方法将遍历DOM树并获得最接近的匹配祖先,这在您的情况下不适用: