.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개