그룹 내 네이티브 js의 클래스 이름 작업에 대해 논의하던 중 누군가가 setAttribute 및 RemoveAttribute 메서드를 사용하여 클래스 이름을 작업할 수 있다고 제안했습니다. 나는 매우 당황했습니다. classList.add() 또는 classList.remove만 있는 줄 알았습니다. () 이 요구를 해결하는 방법은 여러 가지가 있지만 누군가 setAttribute('class', 'xxx') 및 RemoveAttribute('class')를 사용하도록 제안했습니다. 첫 번째 느낌은 제한적이고 안전하지 않다는 것입니다. 첫째, 클래스 이름은 지정된 결과로만 변경될 수 있고, 둘째, 클래스 속성을 삭제하는 방법을 본 적이 없습니다. 클래스 이름 작업에 이러한 접근 방식이 가능한지 묻고 싶습니다. ?
我想大声告诉你2017-05-19 10:48:49
사실 클래스 추가 및 삭제만 처리하려는 경우 className을 사용하여 이를 수행하도록 선택할 수도 있습니다. 이렇게 하면 classList와의 호환성 문제도 피할 수 있습니다.
두 가지 추가 및 삭제 방법을 직접 캡슐화하도록 선택할 수 있습니다.
구현 코드는 다음과 같습니다
으아악曾经蜡笔没有小新2017-05-19 10:48:49
removeAttribute
是用来删除指定属性的, class
也是属性,自然可以删除。classList
是 HTML5 的 API,如果只能用它来添加删除,你让不支持 classList
브라우저 버전이 너무 당황스럽네요. 게다가 이런 문제도 해보시면 알게 되실 겁니다.
高洛峰2017-05-19 10:48:49
클래스를 추가하면 안 되는 이유....
setAttribute는 클래스의 전체 속성을 수정합니다. 이를 사용하여 클래스를 처리하려면 여전히 판단이 필요합니다
class="test1 test2 test3"; 이 경우 setAttribute를 사용하려면 먼저 값이 존재하는지 확인해야 합니다. 존재하지 않으면 추가되지 않습니다. 제거를 위해서는 존재 여부를 판단해야 합니다. 존재하지 않는 경우에는 처리되지 않습니다. . . .