所以基本上我只是尝试选择“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,它应该警告“关闭”)
答案 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);
}
});
}