使用jQuery获取字符串的一部分

HTML代码:

如何使用jQuery获取字符串的数字“45”

返回id属性末尾的数字,请使用

 $(this).attr("id").match(/[\d]+$/); 

如果$(this)

则上面将返回45

jsFiddle示例

上面的工作方式是使用.attr()检索元素的id,然后查看id并使用.match()来恢复它的末尾的数字。 /[\d]+$/是一个正则表达式。 [\d]表示一位数+表示一位或多位(位数)。 和$表示该行的结尾。


您可以使用此函数通过使用以selector [name^=value].each() 开头属性来检索所有div的末尾的数字,其id为以block-id- id开头的id:

实际用法:

 $(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]+$/) + "
" ); }); });​

jsFiddle示例

你不需要(或者特别想要)jQuery(它对很多其他东西非常有用,对此不是特别有用)。 直接的JavaScript和DOM:

 var div = document.getElementById('block-id-45'); var n = div.id.lastIndexOf('-'); var target = div.id.substring(n + 1); 

实例: http : //jsbin.com/osozu

如果您已经在使用jQuery,则可以将第一行替换为:

 var div = $('#block-id-45')[0]; 

……但是几乎没有任何理由。

使用jQuery ,只需:

 $("[id='block-id-45']").attr("id").split("-")[2] 

对于所有block-id – ##,您可以使用Peter的答案中的掩码模式:

 $("[id^='block-id-']").click(function(){ row_id = $(this).attr("id").split("-")[2]; ............. ............. })