[英]populating JavaScript key value pair
我有一个带有文件名和复选框的表单,该表单来自已经预先填充的服务器。 我的表格应该更新复选框。
我在JavaScript中有代码选择行,并尝试使用每行复选框中的更新值来构建键值对象。
当选择器设置为仅返回已检查的选择器时,该字典将得到完美构建,但是我也想将可能已被选中的条目添加到字典中。
当我使选择器选择所有行(包括未定义checked属性的行)时,根本不会填充字典。
这是我的输入元素:
<input type="checkbox" name="Map" data-id="@file.FileId" checked="checked" class="auto-accept-checkbox" />
这是javascript代码段:
var map = {};
$("#shareable-file-settings-form table tr").each(function () {
map[$(this).attr('data-id')] = $(this).attr('checked') === 'checked';
});
我已经逐项尝试了控制台,并且我的右操作数表达式在这里起作用了! 我不知道为什么在修改选择器后,外观看起来会像这样(不在字典中放任何东西)
从:
"#shareable-file-settings-form table tr :checked"
至:
"#shareable-file-settings-form table tr"
就像乔所说的,您选择的是tr
元素,而不是内部的input[type=checkbox]
。 首先,将选择器更改为
"#shareable-file-settings-form table tr input[type=checkbox]"
此外,复选框上的“选中”属性是HTML属性,而不是属性。 另外,您可以使用jQuery的.data()
方法访问id
数据属性。
您可以将其更改为
map[$(this).data('id')] = $(this).prop('checked');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.