简体   繁体   中英

Get child element using jquery

I want to get input with class end when the value of class start is changed.

Also I can have more than 1 end and start class

<tr class="input-proporsional">
   <td>1. Start -</td>
   <td>
   <input type="text" name="start[]" class="form-control start" style="width: 60px"> // when the value is changed 
</td>
   <td>End -</td>
   <td>
   <input type="text" name="end[]" class="form-control end" style="width: 60px"> // get this input
</td>
   <td>Rate</td>
   <td><input type="text" name="rate[]" class="form-control rate" style="width: 90px"></td>
</tr>

<tr class="input-proporsional">
   <td>2. Start -</td>
   <td>
   <input type="text" name="start[]" class="form-control start" style="width: 60px"> 
</td>
   <td>End -</td>
   <td>
   <input type="text" name="end[]" class="form-control end" style="width: 60px">
</td>
   <td>Rate</td>
   <td><input type="text" name="rate[]" class="form-control rate" style="width: 90px"></td>
</tr>

So far, I've tried something like code bellow:

$(".start").on("change", function() {
  let element = $(this).parent().parent().find('td').children('end').html();
  console.log(element);
}

But still not working, it return undefined into console. And if write my code like this (up to tr parent):

console.log($(this).parent().parent().html());

The result is like this (I got all of the td):

<td>1. Start -</td>
<td><input type="text" name="start[]" class="form-control start" style="width: 60px"></td>
<t>End -</td>
<td><input type="text" name="end[]" class="form-control end" style="width: 60px"></td>
<td>Rate</td>
<td><input type="text" name="rate[]" class="form-control rate" style="width: 90px"></td>

you will have to use .closest()

$(".start").on("change", function() {
  let element = $(this).closest('tr').find('.end').html();
  console.log(element);
}

Or you can use parents like:

 $(".start").on("change", function() { let element = $(this).parents("tr").find(".end"); console.log(element) });

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM