【问题标题】:Create JSON from Dom elements in a `div`从 `div` 中的 Dom 元素创建 JSON
【发布时间】:2014-01-21 12:33:27
【问题描述】:

我需要获取div 中的所有元素,可以是多个inputs、checkboxs、radiobuttons 等,并将其中的id 或name 和value 转换为JSON 可读格式。

我尝试使用 the following SO question 的修改版本,结果如​​下:

var data = $('#item').map(function() {
    return {
        content: $(this).val()
    };
}).get();

console.log(data);

<div id="item">
    <input class="item" id="test" value="data" />
</div>

但它不返回任何值。

【问题讨论】:

  • 使用serializeArray()然后将结果转换为对象

标签: jquery html json


【解决方案1】:

您正在运行 map 访问 div(它没有值,因为它不是表单控件),而不是其中的输入。

您可能希望 '#item :input' 成为您的选择器。

【讨论】:

  • 更新:任何想法如何在select 上工作,我使用.children() 而不是:input
  • 知道了:selectedText: $(this).find(":selected").text()
  • @NewAmbition — 你真的不需要那样做。您已经拥有的代码将从选择元素中获取值:jsfiddle.net/4HV5v
  • 我是个白痴......第一个选项没有val,所以我认为有一个错误......你的解决方案有效:)
【解决方案2】:

这可能对你有帮助

变种地图 = {}; $("#item").children().each(function (i, element) { 地图[$(element).attr("id")] = $(element).val(); } );

【讨论】:

    猜你喜欢
    • 2011-12-25
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 2017-01-19
    • 2010-11-26
    相关资源
    最近更新 更多