如何查找最接近的输入名称属性值

时间:2014-04-02 04:58:56

标签: jquery

给出以下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'..

怎么了?

2 个答案:

答案 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树并获得最接近的匹配祖先,这在您的情况下不适用: