鉴于后续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>
答案 0 :(得分:2)
要获得tr
中note_table21
的{{1}}计数,其中{ids以note_record
开头:
var count = $("#note_table21 tr[id^=note_record]").length
这里的诀窍是Attribute Starts With selector
<强>更新强>
那就是说,您应该将文档结构更改为:
<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);
})
答案 1 :(得分:1)
您可以使用starts with(^=
)选择器来测试属性的开头:
$(document).find("#note_table21 tr[id^=note_record]").length;
答案 2 :(得分:0)
您可以为子项使用CSS选择器。
$("#note_table21 > #note_record259")
答案 3 :(得分:0)
试试这个
$(document).ready(function(){
$("#note_table21 tbody tr[id*='note_record']").length;
});