1

実際<div class="error_msg_div"><div class="error_msgicon_div"><span class="sprite_16x16_group_errorinfo fl rmar5"></span></div><div class="error_msgtext_div">、ul の前にthese( ) を挿入し、ul の後に

these ( ) を挿入しようとして</div><div class="error_msgcloseicon_div"><span class="sprite_16x16_group_blueclose_icon fl curpointer"></span></div><div class="clearfloat"></div></div>います。

しかし、ここではdivタグを挿入していますが、divを自動的に閉じていますが、それは望ましくありません

ulを1つのdiv内にプッシュしようとしているためです。それはここでは起こっていません

私のjsfiddleはここ
にあります私のスクリプトは次のとおりです:

if($('span.error_span:has(ul.validation-messages)')){
                $('ul.validation-messages').before('<div class="error_msg_div"><div class="error_msgicon_div"><span class="sprite_16x16_group_errorinfo fl rmar5"></span></div><div class="error_msgtext_div">');
                $('ul.validation-messages').after('</div><div class="error_msgcloseicon_div"><span class="sprite_16x16_group_blueclose_icon fl curpointer"></span></div><div class="clearfloat"></div></div>');
            }​
4

2 に答える 2

4

HTMLを含むいくつかの文字列を単に連結するだけでなく、これらの関数を使用してDOMを操作していることに注意してください。を追加することはできません</div>

を使用wrap()してリストの周囲にそのdivを追加してから、およびを使用before()after()て他のdivを挿入する必要があります。

$('ul.validation-messages')
    .wrap('<div class="error_msg_div">')
    .before('<div class="error_msgicon_div"><span class="sprite_16x16_group_errorinfo fl rmar5"></span></div><div class="error_msgtext_div">')
    .after('<div class="error_msgcloseicon_div"><span class="sprite_16x16_group_blueclose_icon fl curpointer"></span></div><div class="clearfloat"></div></div>');
于 2012-06-07T12:59:46.183 に答える
3

との代わりにラップを使用してみましたか?beforeafter

于 2012-06-07T12:59:18.040 に答える