javascript - jQuery 选择选中复选框的每一行中的所有文本框

标签 javascript jquery asp.net-mvc-3

我的 View 包含具有以下结构的表:

<table id="mappings">
    <thead>
        <tr>
            <th width="40%"><input type="checkbox" id="cb-master" /> Structure</th>
            <th width="15%">Excel Column</th>
            <th width="15%">Excel Row Start</th>
            <th width="15%">Excel Row End</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><input type="checkbox" id="cb-1" value="1" /> Item 1</td>
            <td><input type="text" id="col-1" value="A" /></td>
            <td><input type="text" id="rstart-1" value="5" /></td>
            <td><input type="text" id="rend-1" value="20" /></td>
        </tr>
        <tr>
            <td><input type="checkbox" id="cb-2" value="2" /> Item 2</td>
            <td><input type="text" id="col-2" value="B" /></td>
            <td><input type="text" id="rstart-2" value="5" /></td>
            <td><input type="text" id="rend-2" value="20" /></td>
        </tr>
          .
          .
          .
        <tr>
            <td><input type="checkbox" id="cb-n" value="n" /> Item n</td>
            <td><input type="text" id="col-n" value="Z" /></td>
            <td><input type="text" id="rstart-n" value="5" /></td>
            <td><input type="text" id="rend-n" value="20" /></td>
        </tr>
    </tbody>
</table>

其中 ItemId 是复选框中包含的值,每个输入的 id 附加有当前项目的 Id。如何使用 jQuery 遍历上表并创建一个 JSON 数组,其中包含每行中复选框 checked 值设置为 true 的文本框的值?

我希望 JSON 对象看起来像这样(如果可能的话):

[
    { "ItemId": "1", "ExcelColumn": "A", "ExcelRowStart": "5", "ExcelRowEnd": "20" },
    { "ItemId": "2", "ExcelColumn": "B", "ExcelRowStart": "5", "ExcelRowEnd": "20" },
        .
        .
        .
    { "ItemId": "n", "ExcelColumn": "Z", "ExcelRowStart": "5", "ExcelRowEnd": "20" }
]

最佳答案

给你:

$("#mappings tr input:checkbox:checked")
    .closest("tr").find("input:text").css({ "border" : "1px solid red" });

这是一个 jsFiddle:http://jsfiddle.net/xgSpp/

要将选择序列化为 JSON,您只需调用 serializeArray 即可。唯一的问题是您必须提供元素的名称。

var result = $("#mappings tr input:checkbox:checked").closest("tr").find("input:text").serializeArray();
alert(JSON.stringify(result));

关于javascript - jQuery 选择选中复选框的每一行中的所有文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8170318/

相关文章:

javascript - 如何用它自己的元素和另一个数组的元素初始化一个javascript数组?

javascript - 如何像facebook一样在分钟更改为小时然后天后使用时间前javascript?

javascript - 用空格替换破折号(连字符)

javascript - 模态关闭按钮

visual-studio-2010 - VS2010 和引用正确的程序集(调试/发布)?

asp.net-mvc - 使用 Razor,如何使所有 "bool?"属性在详细信息页面上显示为是/否/未设置?

javascript - 使用 JS 打开的 CSV 文件在被另一个同名文件替换时不显示文件的更新版本。 d3.csv

javascript - 在我自己的 js 模板系统/引擎中使用 jquery 选择

javascript - 如何在javascript中获取json键和值?

asp.net-mvc - %20 后跟斜杠后跟更多数据导致 ASP.NET MVC 3 路由失败?