wingmeng / front-end-quiz

前端小测试答题收集
0 stars 0 forks source link

DOM基础测试38:表单元素伪类选择器 #32

Open wingmeng opened 5 years ago

wingmeng commented 5 years ago

题目:

image


我的回答:

第 1 题:

document.querySelectorAll('[type=radio]:required');

第 2 题:

// 处于禁用状态的 fieldset 下的 radio 也包含在内
document.querySelectorAll('[type=radio]:disabled');

第 3 题:

document.querySelectorAll('[type=radio]:checked');

第 4 题:

const activateBtn = document.getElementById('removeDisabled');

activateBtn.addEventListener('click', () => {
  const disabledRadios = document.querySelectorAll('[type=radio]:disabled');

  [...disabledRadios].map(radio => {
    const fieldset = radio.closest('fieldset');  // 这里未考虑多层 fieldset 嵌套的情况

    radio.disabled = false;
    fieldset && (fieldset.disabled = false);
  });
});

第 5 题:

纯 CSS 方案即可

[type=radio]:invalid {
  outline: 3px dashed red;
}