删除子div

时间:2012-04-22 17:09:52

标签: javascript jquery

我有div列表,我想要删除的是<div class="lol">999</div>,并将其替换为<div class="lol">111</div>

我知道如何获取两者的数据平方。我尝试使用$(this).removeClass('column div');,但效果不佳。

访问http://jsfiddle.net/jm4eb/5/ 之前:

<div class="column" data-square="1-4">
<div class="green">999</div>
</div>


<div class="column" data-square="1-5">
<div class="blue">111</div>
</div>

<div class="column" data-square="1-4">

</div>


<div class="column" data-square="1-5">
<div class="green">999</div>
</div>

嗨,这就是应用程序的工作方式。假设有10个div框,每个框有一个内框12,用户点击一个div并点击另一个div。所以应该删除第二个div单击的内部div,并替换为第一个div单击div的内部。但外部div只有他们拥有的唯一字段是数据平方。访问http://jsfiddle.net/jm4eb/11/所以当第一个div的内部div将转到而不是第二个div的内部div被点击时。第二个div的内部div在替换之前被删除

2 个答案:

答案 0 :(得分:2)

如何更改文本值而不是删除然后创建新文本?

$( '.column' ).each( function () {

    // Save $( this ) and $( this ).next() since we're going to use them multiple times
    var self = $( this ),
        next = self.next()

    // For each of them, save the firstChild's text
    var val = self.children().first().text()

    // Now, check if the next DIV exists
    if ( next ) {

        // If it does, change the text of its first child with the "val" variable
        next.children().first().text( val )
    }
} )

修改:将.find( '>:first-child' )替换为.children().first()。无法相信jQuery没有一种方法来填充firstElementChild

@Esailija也认为这种方法缺失很奇怪。所以他创造了一个jQuery plugin。这意味着我可以使用self.firstChild().text()代替self.children().first().text()

答案 1 :(得分:0)

如果我理解正确,你想要放置div用户的内容首先点击他们点击的第二个div。由于你已经选择了dv(通过他们的点击)并且你有数据方块,所以只需要复制html。例如:http://jsfiddle.net/jm4eb/6/如果要清空第一个div的内容,只需在第一次单击时添加.html(""),或者将引用保存到单击的div,并在保存的引用上运行.html("")他们第二次点击。

我错过了你的问题吗?