0

我通过以下方式在我的 HTML 页面中获取所有输入文本:

 var inputs = data.context.find(':input');
 $('#result').text(JSON.stringify(inputs.serializeArray()));

然后我有一个 JSON 字符串,其中包含每个输入文本的 id 和值。

我正在尝试做类似的事情,但我所有的跨度。我的 HTML 文件中有这个:

 <td class="name"><span>{%=file.name%}</span></td>

我可以拥有任意数量的<td class="name"> ...标签。所以我必须得到所有它们的值并转换为 JSON 字符串,就像我对上面的输入文本所做的那样。

我该怎么做?

4

3 回答 3

3

此代码片段:$('.name span')将返回一个对象数组,因此为了从每个对象中获取文本,您需要将其作为数组运行:

$('.name span').each(function(index,val){
   //do something with val
});

您可以在此处查看此方法的参考。

简单的小提琴:http: //jsfiddle.net/CMdBa/1/

于 2013-03-06T19:32:14.137 回答
2

迭代.name(或在必要时更深入地指定),构建您的数据结构(使用data),然后将其转换为 JSON。工作示例:http: //jsfiddle.net/tLuPC/

以下是模拟id您是否需要获得帖子中提到的内容。使用data-属性存储信息。否则,您可以简单地获得name.

var data = [],
    jsonData = null;

$('.name').each(function () {
    var item = $(this);

    data.push({
        id: item.data('id'),
        name: $('span', item).text()
    });
});

jsonData = JSON.stringify(data);

console.log(JSON.stringify(jsonData));
于 2013-03-06T19:34:26.780 回答
0

您可以使用map函数来枚举和格式化集合。

var spanTextArray = $('td.name span').map(function(){
    return $.trim(this.innerHTML);
}).get();

这将输出一个文件名数组,您可以轻松修改返回以输出一个键值对数组。

于 2013-03-06T19:34:51.580 回答