替换包含带有图标</span>的<span>的div的文本

时间:2014-12-23 14:38:41

标签: javascript jquery text replace

我想替换div的整个文本但不删除其中的span

一旦用户点击ul中的某个元素,我就必须替换以下div中的文字(&#34; Yourself&#34;):

<div style="display: inline">
    <div class="text-light" style="float: left">Post as: </div>
    <div class="link toggle-post" style="float: right" >
        Yourself
        <span id="dropdownIcon" class="ui-icon-dropdown"></span>
    </div>
</div>

我使用以下代码:

$('[data-postas]').click(function changeHeader(event){
    var element = $(event.srcElement);
    $('.toggle-post').text().replace($('.toggle-post').text(), element.text());
    $('#postAs').val(element.attr('data-postas'));
    if (element.attr('data-company')){
        $('#company').val(element.attr('data-company'));
    }

    $('.icon-cheack').remove();
    element.append('<i class="icon-cheack fright"></i>');
    setTimeout(function() {
        $(".ul-post").toggle();
    }, 500);
    $('#dropdownIcon').addClass('ui-icon-dropdown');
})

文字未被替换

2 个答案:

答案 0 :(得分:1)

@BeNdErR感到悲伤,保存span,放icon,加回span

//Save the old one
var span = $('#dropdownIcon');
//Empty the div
$('.toggle-post').empty().append('<i class="icon-cheack fright"></i>').append(span);

答案 1 :(得分:0)

试试这个!

var sp = $('.toggle-post span.ui-icon-dropdown'); 
$('.toggle-post').html( "text to replace").append(sp);