0

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

<div class="span12 display">

或者:

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

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

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

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

所以这个数字是相当随机的。在将其更改为 span18 之前了解 span-number 非常重要,因为应该可以更改以前的大小(span)。

对不起,我忘了提这个。:|

4

3 回答 3

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));
于 2013-01-11T22:38:58.570 回答
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
});
于 2013-01-11T22:27:51.660 回答
0

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

于 2013-01-11T22:29:36.103 回答