使用jQuery获取(半)动态css类

时间:2013-01-11 22:26:07

标签: jquery jquery-selectors

我现在有点卡住了。我需要从元素中获取某个类。 class属性可能如下所示:

<div class="span12 display">

或:

<div class="span24 overview overview-small">

所以 span * 总是相同的,只是数字可以不同。

我真的不知道每次使用jQuery如何获得 span *

修改: 我的目标是改变元素的大小。例如从span12到span18。我可能需要将大小从span10更改为span18或从span8更改为span18。这就是我更喜欢通用解决方案的原因。

所以这个数字是随机的。在将其更改为span18之前知道跨度数非常重要,因为应该可以更改先前的大小(跨度)。

抱歉,我忘记提及此事了。 :|

3 个答案:

答案 0 :(得分:2)

简单的字符串解析可以为您提供:http://jsfiddle.net/7sXFb/

$("div[class*=span]").each(function(){
  var cls = this.className,
      prt = cls.split(" "),
      spn = 0;

  for (var i = 0; i < prt.length; i++){
    if (prt[i].indexOf("span") > -1)
      spn = +prt[i].replace("span","");
  }

  console.log(spn);
});

您可以像这样添加10:

this.className = this.className.replace("span" + spn, "span" + (spn+10));

或者,像这样:

$(this).removeClass("span" + spn).addClass("span" + (spn+10));

答案 1 :(得分:1)

如果你有这个号码,那就不应该那么难了。

var spanNumber = 15;
var spanSelector = ".span"+spanNumber;
var spanClassName = $(spanSelector)[0].className;

如果您没有该号码,那么您可以查找部分匹配,然后对该组执行某些操作

var spans = $('div[class*=span]');

也许迭代它们:

演示:http://jsfiddle.net/hFx26/

spans.each(function(index,element){
 var spanClass = element.className;
 var tar = spanClass.indexOf("span");
 var number = "";
 for( var i = (tar + 4); i < spanClass.length; i++ ){
  if( spanClass[i] == " " ) break;
  number += spanClass[i].toString();
 }
 number = parseInt(number);
 //call some function with number, element, or replace the className
});

答案 2 :(得分:0)

您可以简单地将另一个类allspans添加到具有span *值的每个元素中,并将其用作选择器。