jquery each()方法的一点疑问。
我用each方法alert<td>中的文本,为什么会先弹出5个空白提示才开始显示文本?前台:<tableid="GridView1"cellspacing="0"cell...
我用each方法alert<td>中的文本,为什么会先弹出5个空白提示才开始显示文本?
前台:
<table id="GridView1" cellspacing="0" cellpadding="4" border="0" style="color: #333333;
border-collapse: collapse;">
<tbody>
<tr style="background-color: #EFF3FB; font-family: 微软雅黑; font-size: Smaller;">
<td align="center">
C001
</td>
<td>
奥迪A6L 08款 2.4舒适型
</td>
<td align="center">
B001
</td>
<td align="center">
2008年4月12日
</td>
<td align="right">
<font color="red">RMB </font>50.47
</td>
<td align="center">
<a id="xiangxi" style="display: inline-block; width: 50px;" href="WebForm5.aspx?youhao=7.4&gonglv=147&pailiang=1984">
详细</a>
</td>
</tr>
</tbody>
</table>
JQ:
<script type="text/javascript">
$('#GridView1 tr').each(function() {
alert($(this).find('td').eq(0).text());
alert($(this).find('td').eq(1).text());
alert($(this).find('td').eq(2).text());
alert($(this).find('td').eq(3).text());
alert($(this).find('td').eq(4).text());
});
</script> 展开
前台:
<table id="GridView1" cellspacing="0" cellpadding="4" border="0" style="color: #333333;
border-collapse: collapse;">
<tbody>
<tr style="background-color: #EFF3FB; font-family: 微软雅黑; font-size: Smaller;">
<td align="center">
C001
</td>
<td>
奥迪A6L 08款 2.4舒适型
</td>
<td align="center">
B001
</td>
<td align="center">
2008年4月12日
</td>
<td align="right">
<font color="red">RMB </font>50.47
</td>
<td align="center">
<a id="xiangxi" style="display: inline-block; width: 50px;" href="WebForm5.aspx?youhao=7.4&gonglv=147&pailiang=1984">
详细</a>
</td>
</tr>
</tbody>
</table>
JQ:
<script type="text/javascript">
$('#GridView1 tr').each(function() {
alert($(this).find('td').eq(0).text());
alert($(this).find('td').eq(1).text());
alert($(this).find('td').eq(2).text());
alert($(this).find('td').eq(3).text());
alert($(this).find('td').eq(4).text());
});
</script> 展开
推荐于2016-03-30
展开全部
each()方法能使DOM循环结构简洁,不容易出错。each()函数封装了十分强大的遍历功能,使用也很方便,它可以遍历一维数组、多维数组、DOM, JSON 等等
在javaScript开发过程中使用$each可以大大的减轻的工作量。
each的几种常用的用法:
each处理一维数组
var arr1 = [ "aaa", "bbb", "ccc" ];
$.each(arr1, function(i,val){
alert(i);
alert(val);
});
alert(i)将输出0,1,2
alert(val)将输出aaa,bbb,ccc
each处理二维数组
var arr2 = [['a', 'aa', 'aaa'], ['b', 'bb', 'bbb'], ['c', 'cc', 'ccc']]
$.each(arr, function(i, item){
alert(i);
alert(item);
});
arr2为一个二维数组,item相当于取这二维数组中的每一个数组。
item[0]相对于取每一个一维数组里的第一个值
alert(i)将输出为0,1,2,因为这二维数组含有3个数组元素
alert(item)将输出为 ['a', 'aa', 'aaa'],['b', 'bb', 'bbb'],['c', 'cc', 'ccc']
在javaScript开发过程中使用$each可以大大的减轻的工作量。
each的几种常用的用法:
each处理一维数组
var arr1 = [ "aaa", "bbb", "ccc" ];
$.each(arr1, function(i,val){
alert(i);
alert(val);
});
alert(i)将输出0,1,2
alert(val)将输出aaa,bbb,ccc
each处理二维数组
var arr2 = [['a', 'aa', 'aaa'], ['b', 'bb', 'bbb'], ['c', 'cc', 'ccc']]
$.each(arr, function(i, item){
alert(i);
alert(item);
});
arr2为一个二维数组,item相当于取这二维数组中的每一个数组。
item[0]相对于取每一个一维数组里的第一个值
alert(i)将输出为0,1,2,因为这二维数组含有3个数组元素
alert(item)将输出为 ['a', 'aa', 'aaa'],['b', 'bb', 'bbb'],['c', 'cc', 'ccc']
展开全部
像你的程序是先执行js代码,在加载页面,像楼上rdy826 那样的回答是没有问题的,他是先加载好页面再执行js,要是有问题,除非是你的浏览器缓存
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这么跟你解释吧,你的each()循环,执行了。$(this)就是第一个tr吧,然后请注意你的第一个tr里面会有好多表格吗?剩下皆是这个原因。find方法是找到当前对象下面的子元素,如果你下面没有这些td,那么你还怎么去文本??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你JS的加载顺序可能出问题了
在网页没还有加载完成时执行了一次,所以是5个空白
网页加载完成后又执行一次,是五个有内容的
在网页没还有加载完成时执行了一次,所以是5个空白
网页加载完成后又执行一次,是五个有内容的
追问
我把这段JQ代码放在了的后面,执行的时候页面应该加载完了吧?
追答
你再检查检查
因为单独运行你这个程序是没问题的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就这段代码而言木有问题哦,单独提取这段代码 打印出来的是这个结果。出现空白是否是其他段的代码,可以排查下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询