我有如上所示的表,我想创建一个自定义数组来传递值。
目前我正在使用以下代码行:
var arr = $('input[type=text].editfield').map(function () {
return this;
}).get();
var objArr = jQuery.map(arr, function (i) {
return {
myDate: i.parentElement.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.childNodes[0].textContent,
myValue: i.value
}
}).get();
我希望我的网格中包含所有项目的对象数组,其中Date和Value分别作为属性。
但有些事情是错的,我无法解决。例如,上面的代码说“ jQuery.map(...)。get不是函数 ”
如何更正我的代码以执行正确的操作?
答案 0 :(得分:7)
不需要在静态jQuery.map()函数上使用.get(),它返回一个正确的数组,而插件方法.map()返回一个jQuery对象,你必须在其上调用{{ 3}}得到一个数组。
此外,无需使用2个循环,
var objArr = $('input[type=text].editfield').map(function (idx, i) {
//the element selection used here is cruel, if you can share the html used we can help you to clean it
return {
// you can try myDate: $(this).parent().prevAll().eq(5).text() - not testable without the html and what is the expected output
myDate: i.parentElement.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.childNodes[0].textContent,
myValue: i.value
};
}).get();