2014-10-12 45 views
0

我試圖獲得與最接近()函數附近的輸入元素,但它說clostest不是一個函數...上的跨度,當點擊獲取附近的輸入元素(onclick事件)

這裏是JSFidlle:http://jsfiddle.net/1mvc76fv/

HTML:

<div> 
    <input type="text" value="1"/> 
    <span onClick="fireIt(this)">Kick</span> 
</div> 
<div> 
    <input type="text" value="2"/> 
    <span onClick="fireIt(this)">Kick</span> 
</div>` 

JS:

window.fireIt = function(param) { 
    tmp = param.closest('input'); 
    alert(tmp.val()); 
} 

如何獲得最接近的輸入元素?爲什麼最接近不工作?

+0

使用siblings()或prev()代替最接近的()函數 – Satpal 2014-10-12 13:16:16

+1

我並非試圖成爲face,的,甚至是輕鬆的,但當你遇到問題或者使用jQuery方法時出現意外的結果時,最好只檢查文檔。這本身很容易:'http://api.jquery.com/ /',給(在這種情況下):[http://api.jquery.com/closest/](http://api.jquery的.com /最接近/)。 – 2014-10-12 13:21:09

回答

1

使用.prev()方法既然你已經使用jQuery訪問先前輸入

window.fireIt = function(param) { 
    tmp = $(param).prev('input'); 
    alert(tmp.val()); 
} 

Updated Fiddle


,你可以用它來對事件處理程序綁定,而不是使用內嵌處理器作爲如下:

$("span").click(function() { 
    tmp = $(this).prev('input'); 
    alert(tmp.val()); 
}); 
+0

如果您展示如何使用jQuery而不是內聯事件處理程序綁定事件,那將會很棒。 – Satpal 2014-10-12 13:21:41

+1

@Satpal謝謝,更新了... – 2014-10-12 13:24:49