使用Javascript / jQuery基于它的长度的警报类

时间:2011-07-25 20:19:53

标签: javascript jquery string class

所以基本上我只是尝试选择“on”类,但是基于类的长度为2。

<div class="film cars-0317219 on"></div>
<div class="film wall-e-0910970 on"></div>
<div class="film off up-0945232"></div>
<div class="film on finding-nemo-0266543"></div>
<div class="film off cars-0317219"></div>

类似的东西:

$('div.film').live('click', function(){
var classes=$(this).attr("class").split(" ");
var status=classes[classes.length=2];

alert(status);
});

应警告“开启”

知道如何根据字符串长度获取警报吗? (同样,如果我在代码中放3而不是2,它应该警告“关闭”)

4 个答案:

答案 0 :(得分:2)

var status=classes[1]; // the second element of the array

更好地做你想做的事:

var isOn=$('.film').hasClass('on');

alert(isOn?'on':'off');

请记住,$('.film')只会在执行这些类型的操作时获得该类的第一个元素,除非这是在click之类的处理程序中,在这种情况下您将使用$(this)

答案 1 :(得分:1)

你应该这样做:

alert(classes[1]);
javascript中的

数组基于零,因此第二个元素的索引为1(第三个元素的索引为2)

编辑 - 现在我理解OP意味着单词的长度(2个字母):

var classes=$(this).attr("class").split(" ");
for (i = 0; i<classes.length; i++){
   if (classes[i].length ===2){
      alert(classes[i]);
   }
}

答案 2 :(得分:0)

如果您只想提醒一定长度的课程,可以这样继续

a=['film', 'cars-0317219', 'on'];//same as your var classes;
var status = a.filter(function(x){
 return x.length==this.size;
},{size:2});//contains ['on']

然而,为firefox实现了过滤器,我不知道其他浏览器。

答案 3 :(得分:0)

function something(){
var classSplitOn =" ";
var desiredCount = 2;

var onClassSelector = ".on";

$('.film').each(function(index,elem){
  var classString = elem.className;
  if(classString && classString.split(classSplitOn).length == desiredCount){
    var alertVal = "off";
    if($(this).is(onClassSelector)){
      alertVal = "on";
    }
    alert(alertVal);
  }
});
}