.insertBefore() > 개발자팁

개발자팁

개발과 관련된 유용한 정보를 공유하세요.
질문은 QA에서 해주시기 바랍니다.

.insertBefore() 정보

jQuery .insertBefore()

본문

.insertBefore()

설명 : 일치하는 요소 집합의 모든 요소를 ​​대상 앞에 삽입합니다.

.before()및 .insertBefore()방법은 동일한 작업을 수행합니다. 주요 차이점은 구문과 특히 콘텐츠 및 대상의 배치에 있습니다. With를 사용하면 .before()메서드 앞에 선 택자 표현식은 내용이 삽입되기 전의 컨테이너입니다. 로 .insertBefore(), 한편, 콘텐츠가 선택 식 또는 즉시로 작성된 마크 업하거나, 상기 방법을 선행하고,이 타겟 컨테이너 전에 삽입된다.

다음 HTML을 고려하십시오.

<div class="container">
  <h2>Greetings</h2>
  <div class="inner">Hello</div>
  <div class="inner">Goodbye</div>
</div>
한 번에 여러 요소 앞에 내용을 작성하고 삽입 할 수 있습니다.

$( "<p>Test</p>" ).insertBefore( ".inner" );
각 내부 <div>요소는이 새로운 내용을 얻습니다.

<div class="container">
  <h2>Greetings</h2>
  <p>Test</p>
  <div class="inner">Hello</div>
  <p>Test</p>
  <div class="inner">Goodbye</div>
</div>
페이지에서 요소를 선택하여 다른 요소 앞에 삽입 할 수도 있습니다.

$( "h2" ).insertBefore( $( ".container" ) );
이 방법으로 선택한 요소가 DOM의 다른 위치의 단일 위치에 삽입되면 대상 (복제되지 않음) 앞에 이동되고 삽입 된 요소로 구성된 새 집합이 반환됩니다.

<h2>Greetings</h2>
<div class="container">
  <div class="inner">Hello</div>
  <div class="inner">Goodbye</div>
</div>
그러나 둘 이상의 대상 요소가있는 경우 삽입 된 요소의 복제 된 복사본이 첫 번째 이후의 각 대상에 대해 만들어지고 새 집합 (원래 요소와 복제본)이 반환됩니다.

jQuery 1.9 이전 에는 단일 요소에 추가 - 단일 요소의 경우 새 집합을 만들지 않았지만 원래 집합이 반환 되었기 때문에 .end()알 수없는 요소와 함께 사용할 때 안정적으로 메서드 를 사용하기가 어려웠습니다 .

추가 참고 사항 :

설계함으로써, HTML 문자열을 받아들이는 임의의 jQuery 생성자 또는 방법 - jQuery를 ()는 , 으로 .Append () , 후론 () 등 - 잠재적 코드를 실행할 수있다. 이것은 스크립트 태그를 삽입하거나 코드를 실행하는 HTML 속성을 사용하여 발생할 수 있습니다 (예 :) <img onload="">. URL 쿼리 매개 변수, 쿠키 또는 양식 입력과 같이 신뢰할 수없는 출처에서 가져온 문자열을 삽입 할 때이 메서드를 사용하지 마십시오. 그렇게하면 XSS (Cross-Site-Scripting) 취약점이 발생할 수 있습니다. 문서에 내용을 추가하기 전에 사용자 입력을 제거하거나 이스케이프 처리하십시오.
jQuery는 공식적으로 SVG를 지원하지 않습니다. SVG 문서에서 jQuery 메서드를 사용하면 해당 메서드에 대해 명시 적으로 문서화하지 않으면 예기치 않은 동작이 발생할 수 있습니다. jQuery 3.0에서 SVG를 지원하는 메소드의 예는 addClass및 removeClass입니다.
예:
id가 "foo"인 요소 앞에 모든 단락을 삽입하십시오. $ ( "#foo") .before ( "p")와 동일합니다.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>insertBefore demo</title>
  <style>
  #foo {
    background: yellow;
  }
  </style>
  <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<div id="foo">FOO!</div>
<p>I would like to say: </p>
 
<script>
$( "p" ).insertBefore( "#foo" );
</script>
 
</body>
</html>

추천
1

댓글 0개

전체 5,352
개발자팁 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT