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

时间:2010-09-15 22:32:23

标签: jquery string substring

HTML code:

<div id="block-id-45"></div>

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

3 个答案:

答案 0 :(得分:31)

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

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

如果45$(this)

,则上述内容将返回<div id="block-id-45"></div>

jsFiddle example

上述方法的工作方式是使用 .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);

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

如果您已经在使用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];
    .............
    .............
})