您好,匿名用户
随意问技术百科期待您的加入

第一次发问求给力:jquery在页面显示10*10的表格,其中td标签赋id和数值为1~100,求解答

0 投票
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JQ QQ test</title>
<script type="text/javascript" src="jquery-1.6.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//print a table with 1 to 100
  $("p#table").click(function(){
  for(i=0;i<10;i++){
  $("table#t1").append(function(){
 return "<tr id="+i+"></tr>";
  });
 for(j=1;j<11;j++){
  
  $("tr#"+i).append(function(){
   return "<td id="+(i*10+j)+">"+(i*10+j)+"</td>";
  
  });
 }
  }
  });
  $("td").click(function(){
 $(this).css("background-color","red");
  });
});
</script>
</head>

<body>
<p id="table">click me to generate a table!!!</p>
<table id="t1" border=1></table>
<table id="test"><tr><td id="test">test</td></tr></table>
</body>
</html>

貌似"<td id="+(i*10+j)+">"+(i*10+j)+"</td>";这个显示不正常,如果改成"<td >"+(i*10+j)+"</td>";就显示正常了,不知道问题出在哪里= =||还有td单击响应没反应,求解答,万分感谢

用户头像 提问 2012年 12月1日 @ Varus 上等兵 (281 威望)
分享到:

1个回答

0 投票
 
最佳答案

兄弟看来你还是没理解dom的event..
1、表格不能正常显示是因为你生成的dom的id属性重复了...导致插入时没得到你想要的结果
2、click td没反应是因为..你注册事件的代码是写在了table的td没有生成之前..如果你把td的注册代码放到p的click callback里面..你要的效果就有了...不过即便这样可行...但是却是不合理的..这种情况你应该使用事件代理来减少注册的事件数以提高性能!

用户头像 回复 2012年 12月1日 @ Sivir 上等兵 (275 威望)
选中 2012年 12月1日 @Varus
提一个问题:

相关问题

0 投票
1 回复 49 阅读
0 投票
0 回复 23 阅读
0 投票
1 回复 44 阅读
0 投票
1 回复 37 阅读

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...