1

实际上我试图在 ul 之前插入这些(<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之后插入这些

( )东西</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 推到一个 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

请注意,您正在使用这些函数操作 DOM,而不仅仅是连接一些包含 HTML 的字符串。您不能附加</div>.

您应该使用wrap()在列表周围添加该 div,然后使用before()andafter()插入其他 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

您是否尝试过使用wrap而不是beforeand after

于 2012-06-07T12:59:18.040 回答