问题是键和值变量都被设置为对象。如何将这些转换为文本字符串?
units = [];
$('thead th[style*="width:130px;line-height:1.2em;text-align:center"]').each(function() {
key = $(this).contents('')[4];
value = $(this).contents('')[6];
units[key] = value;
});
答案 0 :(得分:0)
究竟什么是关键值?你能用JSON方式吗?使用JSON.stringify() method
转换JSON对象将更简洁,更容易。
var foo = {};
foo.bar = "new property";
foo.baz = 3;
var JSONfoo = JSON.stringify(foo);
有关详细信息,请参阅here。
答案 1 :(得分:0)
如果我理解你的问题,下面就是你要找的。 p>
jQuery .contents()会产生一个jQuery对象。因此,您应该只filter
来自它的文本节点,然后获取其text
。 (注意:我使用.trim()
清除了任何额外的空格/换行符。
<强> jQuery的:强>
units = [];
$('thead th[style*="width:130px;line-height:1.2em;text-align:center"]').each(function () {
key = $(this).contents().filter(function () {
return this.nodeType === 3;
}).eq(2).text().trim();
value = $(this).contents().filter(function () {
return this.nodeType === 3;
}).eq(3).text().trim();
units[key] = value;
});
//console.log(units);
控制台输出:
[pat(1“sq,1/3”high):“5g”,tbsp:“14.2g”,杯子:“227g”,棒: “113克”]
注意:正如其他人已经在评论中指出的那样,我不建议在选择器中使用内联CSS。您可以将它们放入CSS类中,然后在选择器中使用类this。
答案 2 :(得分:0)
我认为这可能有所帮助。
var units = [];
$('thead th[style*="width:130px;line-height:1.2em;text-align:center"]').each(function() {
key = $(this).text();
console.log(key);
value = $(this).contents('input[type=text]').val();
console.log(value);
units[key] = value;
});
for(var i in units){
console.log(units[i]);
}