2017-05-22 97 views
1

我有如下的代碼。使用jquery得到最接近輸入的標籤的id值

<input type="text" id="commentInput" > 
<a class="Comment" data-toggle="modal" data-target="#commentModal"><i style="font-size: 30px;margin-left: 30px;" class="fa fa-comment-o" id="ficon" aria-hidden="true"></i></a> 

下面是我爲試圖

var id = $('commentInput').closest('a').find('i').attr('id'); 

jQuery的,但我不是得到id value。其投擲爲undefined。 請提出任何建議。

+2

你錯過了id選擇前綴。 '$('commentInput')' - >'$('#commentInput')' –

+0

另外你試圖找到的輸入控件不是你的註釋元素的子元素,所以最接近函數的調用不會找到那個a元素。 – Esko

回答

3

你有幾個問題。首先,你錯過了jQuery對象中id選擇器的#。其次,closest()用於在元素的父元素中查找DOM。 ainput的兄弟,因此您可以改用next()。試試這個:

var id = $('#commentInput').next('a').find('i').prop('id'); 
 

 
console.log(id);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="commentInput"> 
 
<a class="Comment" data-toggle="modal" data-target="#commentModal"> 
 
    <i style="font-size: 30px;margin-left: 30px;" class="fa fa-comment-o" id="ficon" aria-hidden="true"></i> 
 
</a>