如何用jQuery移除PHP CodeIgniter中对应行的输入字段?
解决CodeIgniter中移除按钮仅删除对应行的问题
嗨,这个问题其实是因为你的jQuery代码找错了要移除的容器,咱们一步步来修正:
第一步:确认视图的HTML结构
首先要保证foreach循环渲染的每一行输入字段,都被独立的容器包裹。你的CodeIgniter视图代码应该类似这样:
<?php foreach($records as $record): ?> <!-- 每个数据行用独立的带类名容器包裹 --> <div class="record-item"> <input type="text" name="data_fields[]" value="<?= $record->field_value ?>"> <button type="button" class="RemoveBtn">移除</button> </div> <?php endforeach; ?>
这里的.record-item是关键,它标记了每一行的独立容器,让jQuery能精准定位到要删除的目标行。
第二步:修改jQuery代码
你当前的closest('div')会匹配离按钮最近的所有div,如果所有行都嵌套在一个外层大div里,就会误删整个容器。咱们把它改成精准定位到行容器:
$(document).on('click', '.RemoveBtn', function() { // 只移除当前按钮所在的那一行容器 $(this).closest('.record-item').remove(); });
这样点击移除按钮时,只会找到它所在的.record-item容器并删除,完全不会影响其他行。
额外小提醒
- 如果你的行容器不是div(比如用了
<li>或<section>),不用纠结标签类型,只要把closest('.record-item')里的类名换成你实际用的行容器类名就行。 - 检查HTML结构,确保移除按钮确实在对应行的容器内部,没有嵌套层级错误,不然
closest可能找不到正确的目标容器。
内容的提问来源于stack exchange,提问作者pranay
相关产品推荐
相关产品推荐

