我有一个HTML表
<tr>
<td><input type="Checkbox" name="check"/></td>
<td>random text1</td>
</tr>
<tr>
<td><input type="Checkbox" name="check"/></td>
<td>random text 2</td>
</tr>
<tr>
<td><input type="Checkbox" name="check"/></td>
<td>random text 4</td>
</tr>
开启按钮点击我需要获取复选框旁边的值,以防复选框被选为列表。
var selectedArray = [];
var selected = new Object();
$('input[type=checkbox]').each(function () {
selectedAttributes = $(this).closest('td').next().html();
if (this.checked)
searchAttibutes.push(selectedAttributes);
});
此代码正常工作,并在下一个<td>
文本
//o/p [random text1,random text 2] -- assuming first 2 checkbox selected
可选地
var selectedArray = [];
var selected = new Object();
$('input[type=checkbox]').each(function () {
selectedAttributes.random = $(this).closest('td').next().html();
if (this.checked)
searchAttibutes.push(selectedAttributes);
});
如果选择了文本框总数的最后<td>
文本,则总是返回数组
//o/p [Object { random="random text 4"}, Object { random="random text 4"}] -- assuming first 2 checkbox selected
为什么在两次遍历中获得不同的o / p?
答案 0 :(得分:1)
不同的o / p不是因为遍历,而是基于您在循环中处理变量的方式。
selectedAttributes = $(this).closest('td').next().html();
此处selectedAttributes
是变量
O / P:
随机文本1 随机文本2 // selectedArray = [随机文字1,随机文字2] 而你将它推入阵列。
而在这里,
selectedAttributes.random = $(this).closest('td').next().html();
您正在创建searchAttibutes
object
而 random
是您的key
并正在分配它的价值。
O / P:
{random:random text1}
{random:random text2}
// [Object {random:&#34; random text 4&#34;},Object {random:&#34; random text 4&#34;}]
这个object
你将它推入阵列。