答案 0 :(得分:31)
要返回id
属性末尾的数字,请使用
$(this).attr("id").match(/[\d]+$/);
如果45
为$(this)
<div id="block-id-45"></div>
上述方法的工作方式是使用 .attr()
检索元素的ID,然后查看id
并使用 {{3} } 来恢复它结尾的数字。 /[\d]+$/
是正则表达式。 [\d]
表示一个数字+
表示一个或多个(数字)。而$
表示该行的结尾。
您可以使用此功能通过使用 .match()
和来检索ID为block-id-
的所有div的末尾的数字attribute starts with selector [name^=value]
强>:
$(function() {
// Select all DIS that start with 'block-id-'
// and iterate over each of them.
$("div[id^='block-id-']").each(function() {
// You could push this data to an array instead.
// This will display it.
$("body").append( "Id number: " +
// This is the number at the end
$(this).attr("id").match(/[\d]+$/) +
"<br/>" );
});
});
.each()
强> 答案 1 :(得分:8)
你不需要(或特别想要)jQuery(它对很多其他的东西非常有用,对此不是特别有用)。直接的JavaScript和DOM:
var div = document.getElementById('block-id-45');
var n = div.id.lastIndexOf('-');
var target = div.id.substring(n + 1);
如果您已经在使用jQuery,则可以将第一行替换为:
var div = $('#block-id-45')[0];
......但是,如果有任何理由,那就很少了。
答案 2 :(得分:1)
使用jQuery,简化:
$("[id='block-id-45']").attr("id").split("-")[2]
对于所有block-id - ##,您可以使用Peter's answer中的掩码模式:
$("[id^='block-id-']").click(function(){
row_id = $(this).attr("id").split("-")[2];
.............
.............
})