2015-11-15 4 views
0
function normToggle(){ 
document.getElementById('normToggle').onclick = function(){ 
    if(document.getElementById('normToggle').checked){ 
    document.getElementsByTagName('add').style.verticalAlign= 'baseline'; 
    }else{ 
     document.getElementsByTagName('add').style.verticalAlign= 'super'; 
    } 
}; 
document.getElementsByTagName('add').style.verticalAlign= 'super'; 
document.getElementById('normToggle').checked = false; 
} 

Поэтому я стараюсь использовать флажок, чтобы изменить стиль тегов 'add'. Их вертикальное выравнивание является супер первым, тогда я их не изменю, но они не ответили. Другой javascript из файла smae работает отлично.Мой скрипт javascript для изменения css не работает

+0

используйте console.log, чтобы узнать, какие элементы вы нацеливаете. –

+0

Фактически вы можете использовать селектор CSS: checked в зависимости от того, как это делается для вашей структуры HTML. Я должен увидеть HTML, чтобы быть уверенным. –

ответ

0

getElementsByTagName возвращает HTML Collection - вам нужно перебрать коллекцию, чтобы изменить стиль каждого элемента в коллекции

что-то вроде этого:

function normToggle() { 
    var setAlign = function (align) { 
     [].forEach.call(document.getElementsByTagName('add'), function(tag) { 
      tag.style.verticalAlign = align; 
     }); 
    } 
    document.getElementById('normToggle').addEventListener('click', function() { 
     setAlign(this.checked ? 'baseline' : 'super'); 
    }); 
    setAlign('super'); 
    document.getElementById('normToggle').checked = false; 
} 

Глядя на код сейчас, у вас вряд ли будут элементы, называемые <add> !!! Это какая-то ошибка в вашем HTML?

+0

Я использую xsl для преобразования xml-файла в xhmtl. XML содержит тег , – FPeter

+0

в этом случае код должен быть хорошим –

+0

Хотя ваш код кажется прекрасным, что-то еще есть. Поскольку я использую шаблон, я изучаю исходный код, возможно, я что-то пропустил. – FPeter

 Смежные вопросы

  • Нет связанных вопросов^_^