我已经在SO上看到了其他例子,但它们都不适合我的问题。
我有一个接收select
元素的函数,我需要它来吐出一个JSON格式的字符串。
示例:
foo = buildOptionStructure($('.select-test'));
// Returns string of JSON formatted option data from select
// options in element.
function buildOptionStructure(selectElement) {
options = "[";
selectElement.find('option').each(function(option, i) {
console.log(this); // Return my html in console.
console.log(option); // Return a zero based index!
console.log("I VALUE: " + option); // Returns same zero based index!
options += "{";
options += "name:'" + option.text() + "'";
options += "},";
});
options += "]"
return options;
}
我只需要在给定的select元素中的选项中构建一个字符串。我在这里缺少什么?
答案 0 :(得分:2)
function buildOptionStructure(selectElement) {
var options = [];
selectElement.find('option').each(function(k,v) {
options.push({name: $(this).val()});
});
return options
}
var foo = buildOptionStructure($('.select-test'));
console.log(foo);
要获取JSON字符串,您可以使用JSON.stringify(foo)
。
答案 1 :(得分:1)
当您尝试使用option.text()
时,您正在访问索引要访问元素的文本,请使用:
options += "name:'" + $(this).text() + "'";