2013-06-17 2 views
-1

javascript로 렌더링 할 때 html의 구조/구조를 어떻게 바꿀 수 있습니까? 상위 div를 제거하고 그것의 속성과 클래스 이름 을 자식 요소에 복사하고 싶습니다. 하지만 특정 클래스 이름을 포함하는 전체 페이지에서이 작업을 수행하려고합니다. 코드 예제에서동적으로 HTML 요소를 변경하고 자바 스크립트로 속성을 복사하는 방법

:

<div class="someblock" class="abc" myid="123" position="2"> 
<p>Some paragraph</p> 
<img width="140px; height: 140px; class="myimg" src="url to imgage" /> 
</div> 

이 사람이이, 또는 jQuery를 자바 스크립트와 함께 할 수있는 방법을 알고 있나요 :이 코드

<div class="abc" myid="123" position="2"> 
<div class="someblock"> 
    <p>Some paragraph</p> 
    <img width="140px; height: 140px; class="myimg" src="url to imgage"> 
</div> 

로 변경해야합니까? 미리 감사드립니다.,

Chris.

+0

jQuery.attr'의 무리()'jQuery.unwrap'다음()'. –

답변

0
var el = document.getElementById('123'); 
    if(el) { 
    el.className += el.className ? ' someblock' : 'abc'; 
    } 
1
$('.abc .someblock').contents().unwrap().parent().addClass('someblock'); 

데모 --->http://jsfiddle.net/VQRQV/1/

+0

예를 들어 주셔서 감사합니다! 그러나 이것은 아이가 동일한 태그 유형으로 가정합니다. '

Some paragraph

' 이에 alterted해야합니다 : '<스팬 클래스 = "someblock"대한 myid = "123"위치 = "2">

일부 단락

이 경우 DIV하지만,이에 ' – chriscrossweb

1

당신이 시도 할 수 :

<script> 

    $('.abc').each(function(){ 
     $(this).children().addClass($(this).attr('class')); 
     $(this).children().attr('myid', $(this).attr('myid')); 
     $(this).children().attr('position', $(this).attr('position')); 
     $('body').append($(this).html()); 

     $(this).remove(); 

    }); 

</script> 

하는 것은주의해야합니다.

+0

여기에 체인을 사용해야 할 수도 있고 사용해야 할 수도 있습니다. 덕분에 – Shikiryu

1
$('.someblock').each(function() { 
    var pt = $(this).parent(), 
     cl = pt.attr('class'), 
     id = pt.attr('id'), 
     pos = pt.attr('position'); 
    $(this).unwrap().attr({id:id, position:pos}).addClass(cl); 
}); 
+0

! 이게 내가 찾고 있던거야! 그것은 작동했습니다 :) – chriscrossweb

0

당신은 VAR allElem = document.getElementById를 ("*")와 같은 모든 요소를 ​​얻어서 먼저이 작업을 수행 할 수 있습니다; 그런 다음 모든 요소를 ​​반복합니다.

는 요소가 아이들이 마지막 자식과의 get 속성 값의 예를 찾을 수 있는지 여부를 확인 자식 요소로 활용하려면 다음

VAR elemVal = allElem [I] .ClassName과를; 또는 allElem [i] .getAttribute ("xyx")

이 요소의 값을 html의 원하는 요소에 넣습니다.

document.getElementById ("div"). className = elemVal;

1

이 같은 것이 도움이 될 수 있음 :

function deleteParent(id){ 
    var element = document.getElementById(id); 
    var parent = element.parentNode; 
    var grandParent = parent.parentNode; 
    var html = parent.innerHTML; 
    grandParent.removeChild(parent); 
    grandParent.innerHTML += html; 
} 
+0

이것은 정확히 내가 무엇을 찾고 있었는지,하지만 그것은 매우 분명 당신이 어떻게 parentNode를 제거 할 수 있습니다 understad 수 있습니다. – chriscrossweb

관련 문제