0

使用 javascript 呈现 html 时,如何更改其 hyrarchy / 结构?我想删除一个父 div 并将它的属性和类名复制到它的子元素。但我想在包含某个类名的整个页面中执行此操作。

在代码示例中:我需要此代码

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

变成 :

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

有谁知道如何使用 JavaScript 或 jQuery 来完成这项工作?提前致谢!,

克里斯。

4

6 回答 6

1
$('.abc .someblock').contents().unwrap().parent().addClass('someblock');

演示---> http://jsfiddle.net/VQRQV/1/

于 2013-06-17T09:38:22.620 回答
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>

当心。

于 2013-06-17T09:39:18.577 回答
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);
});
于 2013-06-17T09:39:57.407 回答
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;
}
于 2013-06-17T09:43:41.863 回答
0
var el = document.getElementById('123');
  if(el) {
    el.className += el.className ? ' someblock' : 'abc';
  }
于 2013-06-17T09:31:22.133 回答
0

您可以首先通过将所有元素获取为 var allElem = document.getElementByID ("*"); 然后遍历所有元素。

要获取子元素,请检查元素是否有子元素,查找最后一个子元素并获取属性值示例:

var elemVal = allElem[i].className ; 或 allElem[i].getAttribute("xyx")

然后将此元素的值放入 html 中的所需元素。

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

于 2013-06-17T09:43:35.297 回答