2012-01-04 4 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> 

내가 쓴 : 나는 캔버스 태그로 채워 아직 스팬 태그를 선택하기 위해 jQuery를 선택기를 쓰기 위해 노력하고있어 IE에서. 캔버스 태그는 플러그인에 의해 생성되므로 셀렉터에서 사용할 클래스를 쉽게 추가 할 수 없습니다. IE에서 작동 할이 "canvas without span"태그를 선택하는 또 다른 방법이 있습니까?

감사합니다. $.filter 사용

+1

IE의 버전은 무엇입니까? – jfriend00

+0

IE8,하지만 지금은 내 문제가 IE 문제보다 뿌리가 깊다고 생각합니다. jQuery 1.5.1 (VS2010 덕분에!)을 사용하고 있었고, 1.7까지 올렸을 때 더 좋았습니다. 이 피들에서 jQuery 버전을 변경해보십시오. [link] (http://jsfiddle.net/HXLVA/) – Paul

+0

IE8은 캔버스 태그를 지원하지 않습니다. IE9까지. – jfriend00

답변

2

이 작동해야

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

는 소자 내에<canvas> 요소 없다 각 각 .inliensparkline을 필터링한다. 이것은 단지 :not(:has())을 수행하는 다른 방법 일 뿐이므로이 방법은 IE에서 작동해야합니다.

+0

이것도 작동하지만 내 문제는 jQuery/IE 버전을 넘어서는 것 같습니다. – Paul