【发布时间】:2012-10-29 04:41:27
【问题描述】:
我有几个:
<ul>
<li class="one">
<input type="text" class="form_input" placeholder="Type something...">
</li>
<li class="two">
<input type="text" class="form_input" placeholder="Type something else...">
</li>
</ul>
我正在尝试创建一个类似于以下内容的数组:
[
0[
'placeholder' : 'Type something...'
]
1[
'placeholder' : 'Type something else...'
]
]
我使用这样的方法
var lineText = function(elements) {
var myData = new Array();
elements.each(function(index, data) {
var li = $(this);
myData["placeholder"] = li.find('.form_input').attr("placeholder");
console.log(data); returns the li objects
});
console.log(myData);
};
由此我得到[placeholder: "Type something..."],基本上是我的数组中的一项,而不是 2
我不能像这样使用push:
myData["placeholder"].push(li.find('.form_input').attr("placeholder")); //Cannot call method 'push' of undefined
或向数组添加另一个维度
myData[index]["placeholder"] = li.find('.form_input').attr("placeholder"); //Cannot set property 'placeholder' of undefined
有什么想法吗?谢谢
【问题讨论】:
-
您希望对象作为数组的元素吗?还是包含字符串的数组?
-
我不想要对象,我只想要占位符,在这种情况下,或者我想要作为值传递的任何东西。在这种情况下,对象是我的
data -
你是这个意思? jsfiddle.net/vU36T
-
一个数组不能有像“占位符”这样的字符串键——你可以考虑将 myData 改为一个对象。例如 var myData = {} 而不是 var myData = [] ( new Array() ) -- 然后像 myData["placeholder"][index] = ... 一样添加它
-
你需要多维数组吗?是否有比“占位符”更多的属性要添加到数组中?我假设是的,在这种情况下,您想要更多类似 jsfiddle.net/vU36T/2 的东西,它使用对象。在 JavaScript 中,对象可以像关联数组一样发挥作用。
标签: javascript jquery arrays multidimensional-array each