Javascript 使用jQuery.map()函数创建自定义对象数组
Javascript 使用jQuery.map()函数创建自定义对象数组,javascript,jquery,arrays,object,Javascript,Jquery,Arrays,Object,我有如上所示的表,我想创建一个自定义数组来传递值 目前,我正在使用以下代码行: var arr = $('input[type=text].editfield').map(function () { return this; }).get(); var objArr = jQuery.map(arr, function (i) { return { myDate: i.parentElement.previousSiblin
我有如上所示的表,我想创建一个自定义数组来传递值 目前,我正在使用以下代码行:
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();
我希望在我的网格中有一个包含所有项的对象数组,分别以日期和值作为属性
但有点不对劲,我无法解决。例如,上面的代码说“jQuery.map(…).get不是函数”
如何更正代码以执行正确的操作?无需在静态函数上使用.get(),它返回一个正确的数组,而plugin方法返回一个jQuery对象,您必须调用该对象才能获取数组
也不需要使用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();
这正是我一直在寻找的答案。非常感谢。也非常感谢您在评论中提出的改进建议。这两种方法对我都很有效。