2016-04-28 148 views
0

內的元件I具有一個PHP代碼建立一個這樣的HTML代碼:獲取特定元素

echo '<button><span class="glyphicon glyphicon-zoom-in afficher_itk" aria-hidden="true"></span></button>'; 

echo' <div class="itk" id="'.str_replace(' ','',$systeme_culture['nom_plante']).'"> 
    <table class="table"> 
     <th><td> 
      <tr colspan="2"> 
        <label>Nom : </label> 
        <input class="nom_itk" id="nom_itk" value="test"> 
      </td</tr> 
     </th> 
    </table> 
</div>'; 

該代碼被動態生成,並且我可以具有多於1個碼那樣。

因爲它可以有幾個這樣的事情,我想在運行我的JavaScript時將權利元素作爲目標。

當我點擊按鈕時,我想在相應的input內添加一個內容。不是第一個,而不是最後一個,但只在匹配的代碼中。

我在JS類似的東西:

但這代碼不起作用。有人可以知道我該怎麼做嗎?

+0

嗨,你在尋找這樣的事情 - https://jsfiddle.net/nw7vb2dk/ –

回答

0

不要選擇距離最近的在DOM樹中向上遍歷的itk。而是使用.next選擇從當前元素的下一個itk

$(".afficher_itk").click(function(){ 
    $itk = $(this).next(".itk"); 
    $itk.find(".nom_itk").val("test"); 
}); 
+0

不,對不起,它不起作用。但我發現我該怎麼做。謝謝 ! – Erlaunis

0

我發現我怎麼可能。而不是選擇closest,我得到td父母功能parents()。之後,我可以使用find函數。

$itk = $(this).parents('td'); 
$itk.find('.nom_itk').val("lison"); 
0

試試這個:

它的工作原理,如果該元素是DOM對象

jQuery("html").on("click",".afficher_itk", function(){ 
    $itk = $(this).next(".itk"); 
    $itk.find(".nom_itk").val("test"); 
});