1

動的に生成された div の lastchild を削除し、html を文字列として再生成する方法。サンプル HTML DIV

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 の最後の子を削除し、以前のように文字列に戻すことです。文字列操作はできますが、正しい方法ではない可能性があります。提案してください

4

3 に答える 3

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()
于 2013-08-29T14:09:57.480 に答える
1

DIV を動的に生成します。

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

生成直後に DIV にアクセスします。

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

最後の子を取得します。

var $lastChildElement = $divElement.last();

最後の子 (より具体的にはinnerHTML)の HTML を取得します。

var $lastChildHTML = $lastChildElement.html();

それをすべて一緒に行ってから、向きを変えます。

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

それがすべてです。

于 2013-08-29T14:06:56.607 に答える
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();
于 2013-08-29T14:07:08.463 に答える