2016-04-28 105 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"); 
});