hel*_*llo 0 arrays indexing each jquery function
我正在尝试通过jQuery的.each()函数建立一个数组,但似乎我没有正确地做到这一点?
我在html中有属性,例如:
<div class="cheers" data-fname = "fname" data-lname="lname">some ish..</div><!-- going through a while loop!-->
Run Code Online (Sandbox Code Playgroud)
然后我有一个jquery函数,做这样的事情
var arrayMe = [];
$(".cheers").each(function(index){
arrayMe[index] = $(".cheers").attr('data-fname')+","+$(".cheers").attr('data-lname');
});
Run Code Online (Sandbox Code Playgroud)
然后,当我尝试做各种警报时:
alert(arrayMe); //this gives me the fname,lname
alert(arrayMe[0]); //this gives me the first fname,lname in the array
alert(arrayMe[0][1]); //this SUPPOSED to give me the first lname, but it gives me a letter...
Run Code Online (Sandbox Code Playgroud)
你必须使用arrayMe[1]而不是arrayMe[0][1].
你得到一个字母,因为它arrayMe[0]是一个字符串,并arrayMe[0][1]检索给定字符串的第二个字符.它相当于arrayMe[0].charAt(1).
如果要构建2D数组,请使用:
var arrayMe = [];
$(".cheers").each(function(index){
var $this = $(this);
arrayMe[index] = [$this.attr('data-fname'),
$this.attr('data-lname')];
});
alert(arrayMe); // Array. Shows all pairs, eg: [['fname', 'lname'], ...]
alert(arrayMe[0]); // Array. Shows first pair, eg: ['fname', 'lname']
alert(arrayMe[0][0]); // String. fname eg: 'fname'
alert(arrayMe[0][1]); // String. lname eg: 'lname'
Run Code Online (Sandbox Code Playgroud)
(我也固定的另一个问题,在你的代码替换$('.cheers')用$(this))