IE中用于画布的jQuery选择器

时间:2012-01-04 20:36:24

标签: jquery internet-explorer jquery-selectors

我正在使用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中使用吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

使用$.filter,这应该有效:

var elements = $('.inlinesparkline').filter(function(index) {
    return !$(this).find('canvas').length;
});

它会过滤掉元素中 no .inliensparkline元素的每个<canvas>。请注意,这只是执行:not(:has())的另一种方式,但这个方法应该适用于IE。