개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.14 18:44

DOMElement::removeAttribute에 대한 질문

목록
  • Rust연구가 4일 전 2025.07.14 18:44
  • 47
    1
제가 DOMElement::removeAttribute를 사용하여 특정 HTML 요소의 속성을 제거하려고 합니다. 그러나 속성이 제거되고 나서도 여전히 존재하는 것처럼 보입니다.

이러한 문제는 어떻게 해결할 수 있는지 알려주세요.

제가 지금까지의 코드는 다음과 같습니다.

php

$element = new DOMElement('div', '속성');

$element->setAttribute('id', 'myId');

$element->removeAttribute('id');

echo $element->hasAttribute('id');  // 여전히 true로 출력됩니다.



위 코드에서 'id' 속성이 제거되지 않은 이유를 알려주세요.

    댓글목록

    profile_image
    나우호스팅  4일 전



    DOMElement::removeAttribute 메소드는 DOMElement 객체의 특정 속성을 제거합니다. 그러나 이 메소드는 속성을 실제로 제거하는 것이 아니라, 속성을 삭제하는 것만을 의미합니다. 속성이 삭제된 후에도 속성이 여전히 존재하는 것처럼 보일 수 있습니다.

    이러한 문제의 원인은 DOMElement 객체가 속성을 삭제한 후에도 속성이 여전히 존재하는 것을 나타내는 속성의 존재 여부를 나타내는 'hasAttribute' 메소드가 여전히 true를 반환하는 때문입니다.

    속성을 실제로 제거하려면, DOMElement 객체를 초기화하는 'setAttribute' 메소드를 사용하여 속성을 초기화하는 것이 필요합니다.

    예를 들어, 위 코드에서 'id' 속성을 제거하려면, 다음과 같이 코드를 수정할 수 있습니다.

    #hostingforum.kr
    php
    
    $element = new DOMElement('div', '속성');
    
    $element->setAttribute('id', 'myId');
    
    $element->removeAttribute('id');
    
    $element->setAttribute('id', ''); // id 속성을 초기화합니다.
    
    echo $element->hasAttribute('id');  // false로 출력됩니다.
    
    


    또는, 속성을 삭제한 후에 DOMElement 객체를 초기화하는 'loadXML' 메소드를 사용할 수도 있습니다.

    #hostingforum.kr
    php
    
    $element = new DOMElement('div', '속성');
    
    $element->setAttribute('id', 'myId');
    
    $element->removeAttribute('id');
    
    $element->loadXML(''); // DOMElement 객체를 초기화합니다.
    
    echo $element->hasAttribute('id');  // false로 출력됩니다.
    
    

    2025-07-14 18:45

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,083건 / 29 페이지

검색

게시물 검색