You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jQuery为同一<td>下的指定class元素设置值

问题场景

现有如下表格结构:

...

<td>
    <input type="text" class="car_color">
    <input type="hidden" class="number_car" name="my_timelist[times][]" value="0">
</td> 

<td>
    <input type="text" class="car_color">
    <input type="hidden" class="number_car" name="my_timelist[times][]" value="0">
</td> 

<td>
    <input type="text" class="car_color">
    <input type="hidden" class="number_car" name="my_timelist[times][]" value="0">
 </td> 

...

当前使用的jQuery代码会修改所有.number_car输入框的值,需求是仅修改触发change事件的.car_color所在同一<td>下的.number_car:

$('.car_color').change(function(){
    let datetime = $(this).val();
    $('.number_car').val(123456);
}); 
修正方案

可以通过jQuery的DOM遍历方法,精准定位到当前触发事件元素所在单元格内的目标输入框,避免修改所有同名元素。

方案一:通过父级元素定位(推荐,兼容性更强)

$('.car_color').change(function(){
    let datetime = $(this).val();
    // 先找到当前输入框所在的td,再在td内查找目标元素
    $(this).closest('td').find('.number_car').val(123456);
});
  • closest('td'):从当前元素向上遍历,找到最近的<td>父节点,锁定当前单元格
  • find('.number_car'):在锁定的<td>内部查找目标输入框,确保只操作当前单元格内的元素

方案二:通过同级元素定位(代码更简洁)

如果.number_car和.car_color是直接同级DOM元素,也可以用siblings方法:

$('.car_color').change(function(){
    let datetime = $(this).val();
    // 直接查找当前元素的同级目标元素
    $(this).siblings('.number_car').val(123456);
});

两种方案对比

  • 方案一:不受DOM结构层级变化影响,即使后续.number_car被其他元素包裹,依然能正常定位
  • 方案二:代码更简短,但依赖于两个输入框的直接同级关系,若DOM结构调整可能失效

内容的提问来源于stack exchange,提问作者Engi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 13:49:54