2015-07-28 137 views
0

的HtmljQuery的獲得輸入元素在不同的父元素

<div>         
    <div> 
     <input type="text" class="search_input form-control" placeholder="Search..."></div> 
     <span> 
     <img src="images/btn-reset-search.png" class="clear_text" alt=""> 
     </span> 
</div> 

我想要得到的輸入字段,當我點擊了具有類名形象:clear_text

我想:

$('.clear_text').parent().prev('input'); 
+0

您的代碼看起來不錯。在點擊處理程序中,它變成'$(this).parent()。prev('input');' – lshettyl

回答

2

試試這個:

$('.clear_text').on("click", function() 
{ 
    $(this).closest("div").find("input"); 
}); 

它定位到第一父divclosest("div")),那麼它裏面搜索一個inputfind("input"))。如果您不確定div元素可能具有多少個輸入,則可以使用input:first

0

嘗試

$('.clear_text').parent().prev().find('input'); 
0

嘗試使用以下溶液:

$(function(){ 
    $(".clear_text").click(function(){ 
    var inputField = $(this).parent().closest('input[type="text"]'); 
    }) 
}) 

OR

$(function(){ 
    $(".clear_text").click(function(){ 
    var inputField = $(this).parent().parent().find('input[type="text"]'); 
    }) 
}) 

inputField這裏是所需的輸入。

+0

我不認爲這會起作用!您可能需要引用[.closest()](https://api.jquery.com/closest/) –

+0

我可以知道原因。 –

+0

Reson:在第一條評論中更新仔細查看鏈接 –

2

解決方案:

$(document).on('click', '.clear_text', function(){ 
    var $input = $(this).closest("div").find("input"); 
    //do whatever you want with $input, $input.val(), $input.addClass(), etc.. 
});