1

jQueryを使用して、タグでマークされた特定のポイントで1つのDivを2つのDivに分割することは可能ですか?

このコード例では、「em タグ」で div を分割して 2 つの div を作成することが可能であると考えていました

<div>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,</p>
    <em></em>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,</p>
</div>

<div>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,</p>
</div>
<div>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,</p>
</div>
4

3 に答える 3

1

次のコードを使用して問題を解決できます。このために、親 div に id を割り当て、内部の html を保持した後にその html を削除します。html を変数に格納した後、親 div を削除できますが、変更した html を同じ場所に配置する必要があるため、これは行いません。

var divhtml = $("#divId").html();
var myps = divhtml.split("<em></em>");
var myhtml = "<div>"+myps[0]+"</div><div>"+myps[1]+"</div>";
$("#divId").html(myhtml);

親タグを削除する必要がある場合は、最後の要素 ID を取得し、その html を変数に格納した後にメイン div を削除し、変更された html を最後の要素の次に配置します。

于 2013-02-21T10:07:21.667 に答える
0

メイン div を作成し、append() 関数を使用して任意の HTML をそれに追加できます。例えば:

  <div id='main'>

  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,  </p>

  <em></em>

  <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,  </p>

</div>

JQuery の場合:

varHtml = $('#main').html();

// You can use JS function to split

$('#main').html("");

$('#main').append('<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,</p><em></em>');

$('#main').append('<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit,  </p>');
于 2013-02-21T09:48:56.457 に答える
0

あまり美しくはありませんが、うまくいきます:

$('div').after(function() {
    return $('<div>').append($(this).find('.break').nextAll());
}).find('.break').remove();

ブレーキ要素にクラス.break( <em class="break"></em>) がある場合。

http://jsfiddle.net/U3p3e/

于 2013-02-21T10:07:00.593 に答える