使用jquery根据第一个选项设置第二个选项的值
Set the second option value according to the first option using jquery
我有一个表。我使用jquery动态地向表中添加行。每行有3个选择标记。我想将第三个选项的值设置为与第二个选项相同。
下面是我的代码:$('#table tr').each(function () {
$(this).find('select:eq(1)').change(function () {
var selectedVal = $("#table").find('select:eq(1)').val();
$('#table').find('select:eq(2)').val(selectedVal);
});
});
但我的问题是它只工作一行。我的代码有什么问题?
JSFiddle
委托事件并使用作为选择器tr td:nth-child(2) select
:
$('#table').on('change', 'tr td:nth-child(2) select', function () {
$(this).closest('tr').find('select:eq(2)').val(this.value);
});
-jsFiddle -
为动态事件使用事件委托
$('#table').on('change', 'tr select:nth-child(1)',function() {
//traverse to the parent row
var tr = $(this).closest('tr');
//Find the second select
var secondSelect = tr.find('select:eq(2)');
//Set value
secondSelect.val($(this).val());
});
首先:
var selectedVal = $("#table").find('select:eq(1)').val();
应该是:
var selectedVal = $(this).find('select:eq(1)').val();
否则你只得到第一行的select…
但是更好一点的可能是:
$('#table tr').each(function(iter, elem) {
$(elem).find('select:eq(1)').change(function(){
var selectedVal=$(this).val();
$('#table').find('select:eq(2)').val(selectedVal);
});
});
相关文章:
- 选项设置文本值重复..有没有我可以检查的财产以避免重复
- 在HTML5、CSS、JavaScript中添加选项选择器,类似于移动应用程序中的选项设置
- 如果选定,如何将所选选项设置为 true
- 为什么从指令中更改外部作用域需要 scope.$apply(),即使我将范围选项设置为 false
- 使用 Javascript 函数根据所选选项设置 HTML 文本框值.但它似乎不起作用
- 拒绝在帧中显示,因为它将“X帧选项”设置为“SAMEORIGIN”
- 如何将第一个选择选项设置为始终为空
- 使用原版 JS 在下拉列表中将所选选项设置为大写
- Javascript OOP, getters, setters, run - D3.js - 通过选项设置使图形可重用
- 高图表 + 从 jquery 中的选项设置事件点击
- 具有查询 UI 折叠项的自定义绑定的选项设置
- 根据语言首选项设置提供语言文件
- 如何使用javascript和css为select中的选项设置不透明度
- 可以't将选择选项设置为默认选项
- Phonegap Corodva应用iOS的自定义启动页面选项(设置self.viewController.startP
- Chrome时区选项设置为Date.toLocaleString()
- 将第一个可见选项设置为默认值
- 如何对不同的选择选项设置不同的操作?
- 如何将下拉列表中的最后一个选项设置为使用D3.js选择
- 为在角度下拉列表中创建的默认空白选项设置占位符文本