我通过以下方式获取HTML页面中的所有输入文本:
var inputs = data.context.find(':input');
$('#result').text(JSON.stringify(inputs.serializeArray()));
然后我有一个JSON字符串,其中包含每个输入文本的id和value。
我正在尝试做类似的事情,但我的所有跨度。我在我的HTML文件中有这个:
<td class="name"><span>{%=file.name%}</span></td>
我可以拥有尽可能多的<td class="name"> ...
个标签。所以我必须得到所有这些的值并转换为JSON字符串,就像我对上面的输入文本所做的那样。
我该怎么做?
答案 0 :(得分:3)
此代码段:$('.name span')
将返回一个对象数组,因此为了从每个对象中获取文本,您需要将其作为数组运行:
$('.name span').each(function(index,val){
//do something with val
});
您可以看到对此方法的引用here。
答案 1 :(得分: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));
答案 2 :(得分:0)
您可以使用map
函数枚举和格式化集合。
var spanTextArray = $('td.name span').map(function(){
return $.trim(this.innerHTML);
}).get();
这将输出一个文件名数组,您可以轻松修改返回值以输出一组键值对。