찾다

 >  Q&A  >  본문

javascript - 클래스 이름을 추가하거나 삭제하기 위해 setAttribute/removeAttribute를 사용할 수 있습니까?

그룹 내 네이티브 js의 클래스 이름 작업에 대해 논의하던 중 누군가가 setAttribute 및 RemoveAttribute 메서드를 사용하여 클래스 이름을 작업할 수 있다고 제안했습니다. 나는 매우 당황했습니다. classList.add() 또는 classList.remove만 있는 줄 알았습니다. () 이 요구를 해결하는 방법은 여러 가지가 있지만 누군가 setAttribute('class', 'xxx') 및 RemoveAttribute('class')를 사용하도록 제안했습니다. 첫 번째 느낌은 제한적이고 안전하지 않다는 것입니다. 첫째, 클래스 이름은 지정된 결과로만 변경될 수 있고, 둘째, 클래스 속성을 삭제하는 방법을 본 적이 없습니다. 클래스 이름 작업에 이러한 접근 방식이 가능한지 묻고 싶습니다. ?

过去多啦不再A梦过去多啦不再A梦2775일 전1049

모든 응답(3)나는 대답할 것이다

  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:48:49

    사실 클래스 추가 및 삭제만 처리하려는 경우 className을 사용하여 이를 수행하도록 선택할 수도 있습니다. 이렇게 하면 classList와의 호환성 문제도 피할 수 있습니다.

    두 가지 추가 및 삭제 방법을 직접 캡슐화하도록 선택할 수 있습니다.

    구현 코드는 다음과 같습니다

    으아악

    회신하다
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-19 10:48:49

    removeAttribute 是用来删除指定属性的, class 也是属性,自然可以删除。classList 是 HTML5 的 API,如果只能用它来添加删除,你让不支持 classList 브라우저 버전이 너무 당황스럽네요. 게다가 이런 문제도 해보시면 알게 되실 겁니다.

    회신하다
    0
  • 高洛峰

    高洛峰2017-05-19 10:48:49

    클래스를 추가하면 안 되는 이유....

    setAttribute는 클래스의 전체 속성을 수정합니다. 이를 사용하여 클래스를 처리하려면 여전히 판단이 필요합니다

    class="test1 test2 test3"; 이 경우 setAttribute를 사용하려면 먼저 값이 존재하는지 확인해야 합니다. 존재하지 않으면 추가되지 않습니다. 제거를 위해서는 존재 여부를 판단해야 합니다. 존재하지 않는 경우에는 처리되지 않습니다. . . .

    회신하다
    0
  • 취소회신하다