日期:2014-05-16  浏览次数:20467 次

考考大家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,和有多少列,都准确无误。
------解决方案--------------------