Mam trywialny JavaScript do zmiany stylu:
sel = document.getElementById('my_id');
sel.className = sel.className.replace(/item-[1-9]-selected/,'item-1-selected');
return false;
Działa to dobrze z najnowszymi wersjami FF, Opera i IE, ale zawodzi w najnowszych wersjach Chrome i Safari.
Wpływa na dwóch potomków, którzy są rodzeństwem. Pierwsze rodzeństwo jest aktualizowane, ale drugie nie. Element podrzędny drugiego elementu również ma fokus i zawiera znacznik <a>, który zawiera powyższy kod w atrybucie onclick .
W oknie „Narzędzi programisty” Chrome, jeśli podsuwam (np. Odznaczam i zaznaczam) dowolny atrybut dowolnego elementu, drugie rodzeństwo aktualizuje odpowiedni styl.
Czy istnieje sposób obejścia problemu, aby łatwo i programowo „popchnąć” WebKit do robienia właściwych rzeczy?