javascript
  • jquery
  • html
  • jquery-ui
  • 2013-08-29 16 views 1 likes 
    1

    如何删除动态生成的div的最后一个并以字符串形式重新生成html。 样本HTML DIV如何删除动态生成的DIV的lastchild元素并将字符串返回为html

    strHtmlString = "<div contenteditable='true' id='undefined'>Test1</div> 
        <div contenteditable='true' id='sentenceFreeTextField67' type='sentenceFreeTextField'>One</div> 
        <div id='multiselectAnchors' type='multi'> 
         <div id='options32' >Two</div> 
         <div contenteditable='true' id='sentenceFreeTextField68' type='sentenceFreeTextField'>One</div> 
        </div> 
        <div id='blank4' contenteditable='true' type='blankField'>&nbsp;&nbsp;&nbsp;</div> 
        <div id='Div1' type='multi'> 
         <div id='options33' >Three</div> 
         <div contenteditable='true' id='sentenceFreeTextField69' type='sentenceFreeTextField'>One</div> 
        </div>" 
    

    这里是代码示例

    if (($('<DIV/>').html(strSentence)[0].lastChild.lastChild.type === 'sentenceFreeTextField') && (!$.trim($('<DIV/>').html(strSentence)[0].lastChild.lastChild.innerText))) { 
    
    strHtmlString = $('<DIV/>').html(strSentence)[0].lastChild.lastChild.remove().html; (this remove().html doesn't work) 
    
    } 
    

    需要的是删除div的lastchild在运行时转换回字符串作为此前有。我可以做字符串操作但可能不会在是正确的方式,请建议

    +3

    哪一个是最后一个子DIV? –

    回答

    1

    动态生成一个DIV:

    $('body').append('<div>'); 
    

    访问DIV生成后立即:

    var $divElement = $('body').append('<div>').find('div'); 
    

    获得最后子女:

    var $lastChildElement = $divElement.last(); 
    

    获取最后一个孩子的HTML(更具体地说,是innerHTML):

    var $lastChildHTML = $lastChildElement.html(); 
    

    做这一切在一起,然后你转身:

    var $lastChildHTML = $('body').append('<div>').find('div').last().html(); 
    

    这就是它的全部。

    1
    var last = $(element).children(':last-child'); 
    var html = $(last).html(); 
    $(last).remove(); 
    var newHtml = $(element).html(); 
    //incase you want the html with it's parent as well do this 
    var newHtml = $(element).parent().html(); 
    
    +0

    '$(element).html();'是innerHTML,不包含元素本身 –

    +0

    @MoazzamKhan OP请求HTML作为字符串 – Ozzy

    +0

    @Ozzy我的意思是,innerHTML没有将元素本身作为字符串。 –

    2
    var el = $(strHtmlString); 
    // dont know what you meant by last child, so taking the id 
    el.children().find("#sentenceFreeTextField69").remove(); 
    
    var str = el.wrap("<div/>").parent().html() 
    
    +0

    如果div中的lastchild的类型是'sentenceFreeTextField',它的值是空的,那么删除这个lastChild并重新生成整个html去掉句子FreeTextField69 div resulthtmlstring = oldhtmlstring -

    One
    Gururaj

    相关问题