考考大家jquery的基本功如何2,关于选择器
- HTML code
<!DOCTYPE html><html><head> <title>Duplicate Cell</title> <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.1.js" type="text/javascript"></script> <script type="text/javascript"> $(function () { $("#btnShowMe").click(function () { //在此添加代码 }) }); </script> <style type="text/css"> #scoreboard { width: 400px; margin-top: 20px; } #scoreboard td { border: 1px solid gray; padding: 4px; } #scoreboard thead { text-align: center; background-color: #ddd; } #scoreboard tbody { text-align: center; } td.c-Score { text-align: right; } </style></head><body><input type="button" id="btnShowMe" value="test" /><table id="scoreboard"><thead><tr><td>No</td><td>Name</td><td>Date</td><td>Score</td></tr></thead><tbody><tr><td id="0$0">1</td><td id="0$1">Jeffrey</td><td id="0$2">2011/05/07</td><td id="0$3">2011</td></tr><tr><td id="1$0">1</td><td id="1$1">Jeffrey</td><td id="1$2">2011/06/21</td><td id="1$3">9999</td></tr><tr><td id="2$0">1</td><td id="2$1">Jeffrey</td><td id="2$2">2011/06/22</td><td id="2$3">32767</td></tr><tr><td id="3$0">2</td><td id="3$1">Mulder</td><td id="3$2">2011/06/01</td><td id="3$3">999</td></tr><tr><td id="4$0">3</td><td id="4$1">Darkthread</td><td id="4$2">2011/06/10</td><td id="4$3">100</td></tr><tr><td id="5$0">3</td><td id="5$1">Darkthread</td><td id="5$2">2011/06/15</td><td id="5$3">100</td></tr></tbody></table> </body></html>
表格中的ID是以行和列形式定义成"X$Y",现在如何用jquery的筛选器,通过ID来获取第二列的所有TD,求代码
[解决办法]
//不要说得那么好听
- JScript code
alert($("td[id$='1']").text());//一下得到所有值 var arr=$("td[id$='1']"); for(var i=0;i<arr.length;i++){ alert($(arr[i]).text());//分别一个个弹出 }
[解决办法]
- JScript code
$(function () { $("#btnShowMe").click(function () { var nodes = $('[id^="1$"]'); var ret = []; nodes.each(function(){ ret.push(this.id); }); alert(ret.join(', ')); }) });
[解决办法]
伸手党经常会伪装成标题党。不过这个问题,挺细致的,不是大块地要,就是细节不会了,也算不上伸手党了。
楼上都回答了。但2楼那样的方法有弊端,如果列较多,有11,21这样的列,就不能用了。
其实我觉得这个问题,既然用JQ了,何必再用什么ID呢,既让后台麻烦了,又很没有必要,还嗦。
只要这样一行就行了:
$("#scoreboard>tbody>tr").each(function(){alert($(this).children("td").eq(1).text());});
查找每一行的第二列,甭管有没有ID,和有多少列,都准确无误。
------解决方案--------------------