获取CSS类的一部分作为字符串?

时间:2014-05-29 16:48:39

标签: javascript jquery css

说我有以下4个div:

<div class="mine-banana"></div>
<div class="mine-grape"></div>
<div class="mine-apple"></div>
<div class="orange"></div>

我发现我可以使用以下JQuery选择器来获取3个“我的”div,但我无法弄清楚如何返回所有“我的”水果:)

$('[class*=" mine-"]').each(function() {
    var fruit = $(this).????
});

1 个答案:

答案 0 :(得分:2)

DEMO

实现这一目标的最好方法是重构你的html,就像@Ian指出的那样,例如:

<div class="mine" data-mine-fruit="banana"></div>
<div class="mine" data-mine-fruit="grape"></div>
<div class="mine" data-mine-fruit="apple"></div>
<div class="orange"></div>

JS代码现在很简单:

var fruits = $('.mine').map(function () {
    return $(this).attr('data-mine-fruit')
});

如果您仍想使用当前代码,这里是基于正则表达式的代码

var fruits = []
$('[class*=" mine-"], [class^="mine-"]').each(function() {
    fruits.push( this.className.match(/[^a-z0-9_-]?mine-([0-9a-z_-]+)/i)[1] );

})

真正起作用