我正在使用jQuery sparklines插件开发一个页面。此插件使用canvas标记替换某些CSV文本。我有一系列包含CSV文本的span标签。我正在尝试编写一个jQuery选择器来选择尚未填充canvas标记的span标记:
<td>
<span class="inlinesparkline">
<canvas style=" ... " width="200" height="18"></canvas>
</span>
<td>
<td>
<span class="inlinesparkline">0,2,0,0,0,0,0,0,0,0,0,0,0</span>
<td>
我写过:
$('.inlinesparkline:not(:has(canvas))')
但是,这在IE中不起作用。由于canvas标签是由插件生成的,所以我不能(轻松地)为它们添加一个类以在选择器中使用。有没有其他方法可以选择这些“没有画布的跨度”标签,这些标签可以在IE中使用吗?
谢谢!
答案 0 :(得分:2)
使用$.filter
,这应该有效:
var elements = $('.inlinesparkline').filter(function(index) {
return !$(this).find('canvas').length;
});
它会过滤掉元素中 no .inliensparkline
元素的每个<canvas>
。请注意,这只是执行:not(:has())
的另一种方式,但这个方法应该适用于IE。