使用jQuery获取字符串的子字符串

时间:2014-05-01 15:10:15

标签: javascript jquery html substring

我有一个包含以下类的div:

form-group val-presence-text val-type-pos-int val-length-10 has-success has-feedback

我想从10班级名称中获取val-length-10。我尝试了各种方法,但似乎没有一种方法适用于动态多类属性,例如此类。此外,10可以是任何正整数,类可以位于类组中的任何位置。

有什么想法吗?

4 个答案:

答案 0 :(得分:3)

您可以使用:

var val_length = $('div').attr("class").match(/val-length-(\d+)/)[1];

答案 1 :(得分:2)

一种可能的解决方案:

var n = (this.className.match(/val-length-(\d+)/) || []).pop();

或者在上下文中:

$('[class*="val-length-"]').each(function() {
    var n = (this.className.match(/val-length-(\d+)/) || []).pop();
    console.log(n);
});

答案 2 :(得分:0)

假设它的'val-length'永远不会改变,只是结尾的整数,你应该能够这样做:

//get an array of classes on a specific element
var classList =$('#elementId').attr('class').split(/\s+/);
//loop through them all
$.each( classList, function(index, item){
    //check if any of those classes begin with val-length-
    if (item.indexOf('val-length' === 0) {
       console.log(item.substring(11))
    }
 });

答案 3 :(得分:-1)

试试这个......

$("div[class*=val-length-]").each(function() {
    var s = this.className;
    var length = 0;

    $(s.split(" ")).each(function() {
        if (this.search("val-length-") === 0) {
            length = this.substr(11);
        }
    });

    console.log(length);
});

它会找到相关的div并为你拉取值。