Hallo allen,
Waarschijnlijk een klein / snel vraagje. Ik heb een stukje Javascript die een CSS class 'empty' toe moet voegen aan een div als een daarbij horende div 'leeg' is. Deze werkt goed onder Firefox en dergelijke (natuurlijk), echter onder IE (alle versies) werkt deze niet goed. Zit er een verschil tussen de regex of iets dergelijks van IE en De Andere Browsers? Een Google zoektocht levert weinig op - daar de meesten aannemen dat je div helemaal leeg is (dwz geen innerHtml), echter die van mij heeft wel inhoud in de vorm van een legend (en ja, deze moet er wel inblijven).
Ik ben helaas niet echt thuis in regex, dus nakijken of deze klopt lukt me niet zo goed. Maar aangezien dit goed in de alternatieve browsers werkt, lijkt het alsof dit een IE issue is.
De foutopsporingsfunctie van IE geeft geen problemen weer, en ook compatibiliteitsweergave helpt niets (in IE
. De 'empty' class wordt simpelweg niet toegevoegd aan de tabs. Hieronder nog de HTML die doorzocht wordt:
Zijn er IE / Javascript / Regex goeroes die hier hun licht op kunnen werken?
Waarschijnlijk een klein / snel vraagje. Ik heb een stukje Javascript die een CSS class 'empty' toe moet voegen aan een div als een daarbij horende div 'leeg' is. Deze werkt goed onder Firefox en dergelijke (natuurlijk), echter onder IE (alle versies) werkt deze niet goed. Zit er een verschil tussen de regex of iets dergelijks van IE en De Andere Browsers? Een Google zoektocht levert weinig op - daar de meesten aannemen dat je div helemaal leeg is (dwz geen innerHtml), echter die van mij heeft wel inhoud in de vorm van een legend (en ja, deze moet er wel inblijven).
Ik ben helaas niet echt thuis in regex, dus nakijken of deze klopt lukt me niet zo goed. Maar aangezien dit goed in de alternatieve browsers werkt, lijkt het alsof dit een IE issue is.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| function detectEmptyTabContent() { $(tabElement).find('.tabs-content>ul>li>fieldset').each(function(){ // get tab content without legend var tabContent = $(this).html().replace(/<legend>.+<\/legend>/, ''); // when it contains nothing... if (tabContent.match(/^\s*$/)) { // get tab index var position = ($(this).parent().attr('class')).split(' ')[0].replace('tab-content-',''); // add class=empty on navigation and content $(tabElement).find('.tabs-navigation>ul>li').eq(position-1).addClass('empty'); $(tabElement).find('.tabs-content>ul>li').eq(position-1).addClass('empty'); } }); } |
De foutopsporingsfunctie van IE geeft geen problemen weer, en ook compatibiliteitsweergave helpt niets (in IE
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
| <div class="tabs-navigation"> <ul> <li class="tab-1 current"> <a href="#tab:tab-1" rel="tab-1" onclick="return false;"> Mijn tab 1 </a> </li> <li class="tab-2"> <a href="#tab:tab-2" rel="tab-2" onclick="return false;"> Mijn tab 2 </a> </li> <li class="tab-3"> <a href="#tab:tab-3" rel="tab-3" onclick="return false;"> Mijn tab 3 </a> </li> <li class="tab-4"> <a href="#tab:tab-4" rel="tab-4" onclick="return false;"> Mijn tab 4 </a> </li> </ul> </div> <div class="tabs-content"> <ul> <li class="tab-content-1"> <fieldset> <legend>Mijn tab 1</legend> <div>hoi deze heeft inhoud</div> </fieldset> </li> <li class="tab-content-2"> <fieldset> <legend>Mijn tab 2</legend> <div>Hoi ook deze heeft inhoud</div> </fieldset> </li> <li class="tab-content-3"> <fieldset> <legend>Mijn tab 3 zonder inhoud</legend> </fieldset> </li> <li class="tab-content-4"> <fieldset> <legend>Mijn tab 4 zonder inhoud</legend> </fieldset> </li> </ul> </div> |
Zijn er IE / Javascript / Regex goeroes die hier hun licht op kunnen werken?