jquery 想要获取 DOM 中的下一个输入元素

Posted

技术标签:

【中文标题】jquery 想要获取 DOM 中的下一个输入元素【英文标题】:jquery want to get the immediate next input element in the DOM 【发布时间】:2021-12-05 19:00:30 【问题描述】:

我正在使用基本上克隆我的表单的表单转发器。表单有一个下拉列表和一个只读输入字段。输入字段值会根据从下拉列表中选择的值进行更新。

由于我没有管理表单中的 ID,因此无法针对特定的选择下拉菜单获取特定的输入标签。 当我单击添加按钮时,它会正确添加,但是如果我为输入字段提供类,它会更改所有输入字段的值,但我只想更改每个表单重复器值的选择旁边的输入字段的值.

现在让我解释一下[这个问题图片][1]附上。

假设我的表单只有如图所示的选择和输入,让我们忽略 cmets 和 amount 字段。 每个SELECT选项都有一个值,只要更改选择值时,我需要在其旁边的输入字段中设置。但问题是我为描述输入字段提供了一个类,它也更改了所有输入字段的输入/占位符值,但我只想更新每个选择旁边的输入标签。

<div class="col-md-2 col-12">
    <div class="mb-1">
        <label class="form-label">Type</label>
        <select class="form-control khataTypeChange" style="color: black" required>
        @foreach ($khataTypes as $khataType)
            <option value=" $khataType->id "> $khataType->name </option>
        @endforeach
        </select>
    </div>
</div>

<div class="col-md-3 col-12">
    <div class="mb-1">
       <label class="form-label">Description</label>
       <input type="text" class="form-control description"
       value=" $khataTypes[0]->description " name="description" required />
       </div>
    </div>    
</div>

查询:

$(".khataTypeChange").change(function (e) 
    e.preventDefault();
    $(".description").val(myArray [$(this).val() - 1]["description"]);
);

P.S : myArray 是我想在每个选定值的输入字段中设置描述的数组

我在尝试什么:

$(".khataTypeChange").change(function (e) 
    e.preventDefault();
    var v = $(this).next("input").val("new value");
    $v.val(myArray[$(this).val() - 1]["description"]);
);

注意:每次按下图像中的添加按钮时,它都会产生全新的重复元素行,因此我只需要更新该特定选择前面的描述 我需要帮助,坚持了 6 个小时 :( [1]:https://i.stack.imgur.com/sbrXq.png

【问题讨论】:

您能在此处更新工作代码以便帮助您吗? 感谢您的回复,我花了几个小时才让它工作,这是正在工作的代码行:$(this).parent().parent().nextAll().find(".description").val(khataTypeData[$(this).val() - 1]["description"]); 【参考方案1】:

终于可以使用这条线了:

$(this).parent().parent().nextAll().find(".description").val(khataTypeData[$(this).val() - 1]["description"]);

【讨论】:

以上是关于jquery 想要获取 DOM 中的下一个输入元素的主要内容,如果未能解决你的问题,请参考以下文章

获取 JQuery 中的下一个元素属性

使用 jquery 的 next() 函数获取列表中的下一个元素时,如何在到达列表末尾后获取第一个元素?

JQUERY怎么获取一个类中的最后一个元素。

如何获取在jquery中可见的下一个元素

jQuery进阶

如何将元素移动到 DOM 中的下一个父元素?