如何使用Jquery在父ID中找到类似的ID

时间:2012-11-15 18:47:23

标签: jquery jquery-selectors

鉴于后续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 个答案:

答案 0 :(得分:2)

要获得trnote_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;

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

答案 2 :(得分:0)

您可以为子项使用CSS选择器。

$("#note_table21 > #note_record259")

答案 3 :(得分:0)

试试这个

$(document).ready(function(){
  $("#note_table21 tbody tr[id*='note_record']").length;
});