根据CheckBox选择获取下一个TD的内容

时间:2014-04-10 14:28:36

标签: jquery html

我有一个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?

1 个答案:

答案 0 :(得分:1)

不同的o / p不是因为遍历,而是基于您在循环中处理变量的方式。

方法#1

selectedAttributes = $(this).closest('td').next().html();

此处selectedAttributes是变量

  

O / P:
  随机文本1   随机文本2   // selectedArray = [随机文字1,随机文字2]   而你将它推入阵列。

方法#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你将它推入阵列。

希望你理解。