说我有以下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).????
});
答案 0 :(得分:2)
实现这一目标的最好方法是重构你的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] );
})
真正起作用