2014-08-27 77 views
1

我想控制一些使用类名的元素的css规则,例如可能有一个'class parameter'像'setwidth200','setwidth'后的数字可能是任何数字。有将是对我做这个,如果我知道元素只能有一个类没有问题,但目前它可能看起来像这样:Jquery获取元素的具体类型

<div class="main-client-block selector righted setwidth200"></div> 

有没有办法从元素列表中只得到特定的类班?

+1

“得到”如何?目前尚不清楚你想在这里做什么。 – 2014-08-27 08:31:28

+1

“setwidth之后的数字”可以是任何数字“不是使用CSS的好方法(它不会使用CSS,而只是将class属性用作数据存储)。如果你想调整代码的宽度,可以使用属性,如'data-width =“200”'等等。 – 2014-08-27 08:33:54

+0

好吧,我会尽量更清楚,我可以找到具有特定类的元素,但后来我需要在类名中设置切片号,点是 - 我不知道如何得到这个类名,因为。 attr('class')将返回完整的类列表。 – Dazvolt 2014-08-27 08:34:36

回答

1

移动评论回答:

有“数后 'setwidth' 可以是任何数量的“不是使用CSS的好方法(它不会使用CSS,而只是使用类属性作为数据torage)。

使用属性,如data-width="200"等,而不是如果你想调整/获取代码的宽度值。

你可以用.data(假定数据前缀)或.attr('data-...)`

var width = ~~$element.data('width'); 

var width = ~~$element.attr('data-width'); 

注~~是一个非常快速的方式将字符串转换为整数获取它们。

1

是的。只需将id添加到您的div然后:

<div id="someId" class="main-client-block selector righted setwidth200"></div> 

var classes = jQuery('#someId').attr('class').split(' '); 

而且您将获得该元素的类的数组。然后你可以得到任何课程。另外你可能想要做的是检查数组是否包含你的“类”,然后分割为属性和值来应用样式。

但是,你为什么不简单地使用CSS呢?

+0

我可以使用CSS,但页面上有太多元素,没有定位网格,我厌倦了一遍又一遍地添加CSS类。谢谢你的想法。 – Dazvolt 2014-08-27 08:43:20

1

你可以通过遍历所有类并检查是否设置了类似setwidth的东西。像这样的东西会做:

的JavaScript:

$("div").each(function() { 
    var check = "setwidth"; 
    var classes = $(this).attr("class").split(/\s+/); 
    var width = 0; 
    $.each(classes, function (index, item) { 
     if (item.indexOf(check) === 0) 
      width = parseInt(item.substr(check.length), 10); 
    }); 

    console.log(width); 
}); 

FIDDLE