克隆期间更改div的文本

时间:2013-11-21 11:32:33

标签: javascript jquery html css json

我正在使用ajax调用附加div,为此我创建了一个虚拟div,我是cloning div并根据数据放置数据现在JSON。我也做了dummyfiddle)。每次我在div中将“a”作为文本放在这个小提琴中。我希望如果JSON具有特定值,那么文本应该被更改(如果i的值是4那么根据小提琴,那么文本应该是'b'而不是'a')。所以如何做到这一点。 以下是我的代码(我的代码太大,所以我放虚拟形式).. HTML:

<div class="wrp"></div>
<div class="childd"></div>

CSS:

.wrp{
  background-color:#aaf;
  border:1px solid orange;
  float:left;width:100%
}
.wrp .child{
  float:left;
  height:20px;
  width:20px;
  background-color:#77c;
  border:1px solid #cdcdcd;
}
.childd{
  height:20px;
  width:20px;
  background-color:#cdcdcd;
}

JS:

$('.childd').on('click',function(){
    for(i=0;i<=9;i++){
        $('.childd')
            .clone()
            .removeClass('childd')
            .addClass('child')
            .html('a')
            .appendTo('.wrp');
    }    
})

Fiddle

1 个答案:

答案 0 :(得分:1)

如果您愿意,可以将功能传递给html()。当然,返回值将是应用的值:

$('.childd').on('click',function(){
    for(i=0;i<=9;i++){
        $('.childd')
            .clone()
            .removeClass('childd')
            .addClass('child')
            .html(function(){
                return i==4 ? 'b' : 'a'   
            })
            .appendTo('.wrp');
    }    
})

JSFiddle


如果您想在.html()内返回克隆元素,可以完全相同的方式完成:

.html(function(){
    return i==4 ? $(elem).clone() : 'a'
})