2013-07-19 4 views
0

필자는 모든 이중 인용문을 사과드립니다. 조금만 검색했지만 내 필요에 맞는 스크립트를 찾지 못했습니다. (BTW : 자바 스크립트가 내 편이 아니다)부모님 께 이미지 감싸기

내가 필요한 것은 div 클래스 "post"내부의 모든 이미지를 div 클래스 "parent"로 묶는 스크립트이다.

내가 가지고있는 것은 다음

<div class="post"> 
<div class="parent"><img src="aSimpleImage.png"></div> 
</div> 

나는, 스크립트가 순수로 바닐라 자바 ​​스크립트, 아니 jQuery를 또는 추가를 원하는 : 나는 결과이 원하는 무엇

<div class="post"> 
<img src="aSimpleImage.png"> 
</div> 

스크립트 언어에 대한 외부 HTTP 요청 나는 시도 :

var parent = element.parentNode; 
var wrapper = document.createElement('.parent'); // set the wrapper as child (instead of the element) 
parent.replaceChild(img, .parent); // set element as child of wrapper 
wrapper.appendChild(element); 

편집 : 이 조각

// create the container div 
var dv = document.createElement('div'); 
// get all divs 
var divs = document.getElementsByTagName('div'); 
// get the body element 
var body = document.getElementsByTagName('body')[0]; 

// apply class to container div 
dv.setAttribute('class', 'container'); 

// find out all those divs having class C 
for(var i = 0; i < divs.length; i++) 
{ 
    if (divs[i].getAttribute('class') === 'C') 
    { 
     // put the divs having class C inside container div 
     dv.appendChild(divs[i]); 
    } 
} 

// finally append the container div to body 
body.appendChild(dv); 

누군가가 친절 것 인이 내가 요구하고있는 무슨에 정교하게 찾을 수 있습니까?

+0

시도 했습니까? 몇 가지 코드를 게시하십시오. – basher

답변

0

나는 좋을 것 :

function imgWrap(parent) { 
    if (!parent || parent.nodeType !== 1) { 
     return false; 
    } 
    else { 
     var images = parent.getElementsByTagName('img'), 
      newDiv = document.createElement('div'), 
      tmp; 
     newDiv.className = 'parent'; 
     for (var i = 0, len = images.length; i < len; i++) { 
      tmp = newDiv.cloneNode(true); 
      parent.insertBefore(tmp, images[i]) 
      tmp.appendChild(images[i]); 
     } 
    } 
} 

JS Fiddle demo합니다.

+0

당신은 락! 감사합니다 – fngryboi

+0

당신은 정말로 환영합니다! –

관련 문제