2016-04-28 2 views
0

У меня есть 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. Не первый, не последний, а только соответствующий код.

У меня есть что-то подобное в ЯШ:

Но этот код не работает. Может кто-то знает, как я могу это сделать, пожалуйста?

+0

Привет вы ищете что-то вроде этого - https://jsfiddle.net/nw7vb2dk/ –

ответ

0

Не выбирайте ближайший itk, ближайший проход вверх в DOM Tree. Вместо того, чтобы использовать .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 Object

jQuery("html").on("click",".afficher_itk", function(){ 
    $itk = $(this).next(".itk"); 
    $itk.find(".nom_itk").val("test"); 
}); 
Смежные вопросы