Javascript 如何在jquery中标识元素以调用单个函数

Javascript 如何在jquery中标识元素以调用单个函数,javascript,jquery,Javascript,Jquery,我有一张类似的表,如下表所示。这张表是按字母顺序填充的,因此可以有更多的行。每行都有两个select输入元素,命名为,id以+行数结尾 选择某个选项时,它应加载所选人员的地址,并将其放置在单击的“选择”旁边 如何在jquery中使用单个函数来标识使用了哪个select,以便知道在哪一行中包含来自数据库的结果 例如:我在第二行选择Sam select。函数应该检测发生在哪一行,然后我将调用数据库并将返回的数据放入第二行输入中 名称 住址 选择 约翰 安娜 山姆 选择 约翰 安娜 山姆 选择 约翰

我有一张类似的表,如下表所示。这张表是按字母顺序填充的,因此可以有更多的行。每行都有两个select输入元素,命名为,id以+行数结尾

选择某个选项时,它应加载所选人员的地址,并将其放置在单击的“选择”旁边

如何在jquery中使用单个函数来标识使用了哪个select,以便知道在哪一行中包含来自数据库的结果

例如:我在第二行选择Sam select。函数应该检测发生在哪一行,然后我将调用数据库并将返回的数据放入第二行输入中

名称 住址 选择 约翰 安娜 山姆 选择 约翰 安娜 山姆 选择 约翰 安娜 山姆 您希望明智地使用this关键字

当javascript处理诸如select.change之类的事件时,您可以使用this关键字来确定更改了哪个select。从那里,您可以使用html元素的相对位置来定位,例如,选择的位置

快速示例请注意,TR ID是必需的,因为我正在警报中显示它们:

$'select'。在'change'上,函数{ //有两种方法可以做到这一点 //普通javascript—相对于已更改的select查找tr var tr=this.parentNode.parentNode; //jquery有一些很好的特性,可以更轻松/稳健地完成这项工作 var$tr=$this.最近的'tr'; alerttr.id+和jquery报告+tr.attr'id'; }; 123 123 123
您只需向每个select添加一个类,如.select name

<tr>
  <td>
    <select class="select-name" name="name_1" id="name_1">
      <option value="0">Select</option>
      <option value="1">John</option>
      <option value="1">Anna</option>
      <option value="1">Sam</option>
    </select>
  </td>
  <td>
    <input class="address-field" type="text" name="address_1" id="address_1" disabled/>
  </td>
</tr>
寻找ajax mysql查询
$('.select-name').on('change',function(){
   var $mySelect = $(this);
   var $row = $mySelect.closest('tr'); // the row where this select element is in.
   $.ajax({
       // blabla
   }).done(function(response){
     $row.find('.address-field').val(response)
   });
});