1

鉴于以下 HTML,我需要计算 note_table21 id 中的 note_record[0-9] id 的数量。我将如何用 jquery 做到这一点?注意:note_record id 末尾的数字将动态生成。我需要某种正则表达式,但我太喜欢 jquery noob 了

<table id="note_table21" width="100%" cellspacing="1" cellpadding="1">
 <tbody>
    <tr id="note_record259">...</tr>
    <tr id="note_record260">...</tr>
    <tr id="note_record261">...</tr>
 </tbody>
</table>
4

4 回答 4

2

要获取以id 开头的trin的计数:note_table21note_record

var count = $("#note_table21 tr[id^=note_record]").length

这里的诀窍是Attribute Starts With 选择器

更新

也就是说,您应该将文档结构更改为如下所示:

<table class="note_table" data-id="21" width="100%" cellspacing="1" cellpadding="1">
 <tbody>
    <tr class="note_record" data-id="259">...</tr>
    <tr class="note_record" data-id="260">...</tr>
    <tr class="note_record" data-id="261">...</tr>
 </tbody>
</table>

然后你会有这些脚本片段来帮助你:

///gets the rows in a variable
var $rows = $(".note_table tr.note_record]");

//gets the count
var count = $rows.length;

//iterate through the rows, alerting the id of each row:
$rows.each(function(index, row){
    var id = $(row).data("id");
    alert(id);
})
于 2012-11-15T18:50:07.807 回答
1

您可以使用( ^=) 开头的选择器来测试属性的开头:

$(document).find("#note_table21 tr[id^=note_record]").length;

演示:http: //jsfiddle.net/7uyaW/

于 2012-11-15T18:49:57.623 回答
0

您可以将 CSS 选择器用于子级。

$("#note_table21 > #note_record259")
于 2012-11-15T18:51:47.340 回答
0

试试这个

$(document).ready(function(){
  $("#note_table21 tbody tr[id*='note_record']").length;
});
于 2012-11-15T18:53:10.903 回答