【问题标题】:Complex html table to json using jQuery [closed]使用 jQuery 将复杂的 html 表转换为 json [关闭]
【发布时间】:2012-12-28 17:23:05
【问题描述】:

我需要使用 jQuery 获取以下 html 表的检查行的 JSON

JSON 应该包含用户在文本框中输入的 cmets。 任何指针都会对我有所帮助。

<table id="potable_grid" class="tab">
    <thead>
        <tr>
            <th>
                select PO
            </th>
            <th>
                po id
            </th>
            <th>
                ponumber
            </th>
            <th>
                pocurrency
            </th>
            <th>
                balance
            </th>
            <th>
                thisinvoice
            </th>
            <th>
                thisinvoiceinInvoicecurrency
            </th>
            <th>
                comments
            </th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>
                <input type="checkbox" id="chckPO" />
            </td>
            <td>
                po001
            </td>
            <td>
                cuspo1
            </td>
            <td>
                usd
            </td>
            <td>
                10000
            </td>
            <td>
                200
            </td>
            <td>
                2
            </td>
            <td>
                <input type="text" id="txtPO" />
            </td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" id="chckPO" />
            </td>
            <td>
                po002
            </td>
            <td>
                pocus125
            </td>
            <td>
                inr
            </td>
            <td>
                5000
            </td>
            <td>
                300
            </td>
            <td>
                18000
            </td>
            <td>
                <input type="text" id="txtPO" />
            </td>
        </tr>
    </tbody>
</table>

我查看过很多帖子,例如 HTML Table to JSON

但它适用于行没有任何控制的简单 html 表。

【问题讨论】:

  • 请注明。不可读。
  • 不完全确定您想要什么。您只需要将表格转换为 JSON 对象?只是cmets?还是两者兼而有之?
  • 可爱,但你真正想要的输出是什么? ,阅读Markdown help pageinline代码(包装在`中)和...代码blocks(每行缩进四个空格进一步缩进以实际缩进代码行)。
  • @ Leeish 我想要选定行的所有值的 json,包括文本框中的 cmets。 @Ricardo/David 抱歉识别。这是我对 stackoverflow 的第一个问题。

标签: jquery html json html-table


【解决方案1】:
var $checked = $('#potable_grid :checked');

var data = [];

for(var i = 0; i != $checked.length; ++i)
{
  var $row = $($checked[i]).closest('tr');
  var text = $row.find(':text').val();

  data.push(text);
}

// data is now an array of all checked texts.

您的问题含糊不清,但这应该让您开始了解如何迭代检查的行并获得所需的值。

顺便说一句,为所有文本框设置相同的 'id' 是无效的。如果您想知道与相关记录关联的“id”,请执行po id'之类的操作,例如&lt;input type="text" id="cuspo1" /&gt;。那么你的数据(JSON)可以是一个对象,例如

var $input = $row.find(':text');

data.push({ id: $input.attr('id'), value: $input.val() });


// now data contains an array of { id, value };

【讨论】:

    猜你喜欢
    • 2023-03-18
    • 2021-12-14
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 2014-04-22
    相关资源
    最近更新 更多