Document Object Model - Exercise 2 - Locked Profile Problem
Същото домашно, друга задача, подобен проблем. На практика решението ми работи безотказно, а в Judge - 33/100. Ето го кода:
function solve() {
let profiles = Array.from(document.getElementsByClassName('profile'));
profiles.forEach((profile) => {
let profileStates = Array.from(profile.querySelectorAll('input'))
.filter(i => i.type === 'radio' && i.name.endsWith('Locked'));
profileStates.forEach((state) => {
state.addEventListener('change', () => {
profileStates.forEach((stateRadioButton) => {
stateRadioButton.toggleAttribute('checked');
});
});
});
let hiddenFieldsContainer = Array.from(profile.querySelectorAll('div'))
.filter(div => div.id.endsWith('HiddenFields'))[0];
let showButton = profile.getElementsByTagName('button')[0];
showButton.addEventListener('click', () => {
let profileState = Array.from(profile.querySelectorAll('input'))
.filter(i => i.type === 'radio' && i.checked)[0].value;
if (profileState == 'unlock') {
if (window.getComputedStyle(hiddenFieldsContainer).display === 'none') {
hiddenFieldsContainer.style.display = 'inline-block';
showButton.innerHTML = 'Hide it';
} else {
hiddenFieldsContainer.style.display = 'none';
showButton.innerHTML = 'Show more';
}
}
});
});
}
Тук няма валидации, така че съвети от сорта на "Виж си проверките, нещо да не си объркал." не вървят. Два свързани радиобутона и един стандартен.
Аз поне като го пусна това нещо в браузър, виждам точно резултата, който се очаква по условие. Какво обаче иска Judge?
Благодаря колега! Това от решенията, които асистента обеща да пусне във Фейсбук ли е?
https://github.com/HristomirAsenov/exercise-repo ей това е репото на асистента,но там са до 3та засега. Решението си е авторско на колегата.
Благодаря и на теб, Тео! Полезна информация.
Не ми допада че минават решения, в които елементите се адресират по позицията си в страницата, ама щом така трябва да пишем, за да получим реални оценки...