2012-01-04 14 views
0

jQuery sparklinesプラグインを使用してページを開発しています。このプラグインは、一部のCSVテキストをキャンバスタグに置き換えます。私は、CSVテキストを含む一連のspanタグを持っています。IEのキャンバスのjQueryセレクター

$('.inlinesparkline:not(:has(canvas))') 

しかし、これは動作しません:

<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> 

私が書いた:私は、キャンバスのタグで埋めなければ、まだ持っているspanタグを選択するために、jQueryのセレクタを記述しようとしていますIEで。キャンバスタグはプラグインによって生成されるので、セレクタで使用するクラスを(簡単に)追加することはできません。 IEで動作するこれらの「canvas without spans」タグを選択する別の方法はありますか?

ありがとうございます! $.filterを使用

+1

どのバージョンのIEですか? – jfriend00

+0

IE8しかし、今私は自分の問題がIEの問題よりも根深いと思っています。私はjQuery 1.5.1(VS2010に感謝します)を使用していました。このフィドルでjQueryバージョンを変更してみてください:[link](http://jsfiddle.net/HXLVA/) – Paul

+0

IE8はキャンバスタグをサポートしていません。 IE9まで。 – jfriend00

答えて

2

、これは動作するはず:要素内ない<canvas>要素が存在する場合

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

これは各.inliensparklineそれぞれを除外します。これはちょうど:not(:has())を実行する別の方法ですが、これはIEで動作するはずです。

+0

これも動作しますが、私の問題はjQuery/IEのバージョンを超えているようです。 – Paul