jquery before() after() 不能正常工作

jquery before() after() are not working properly

本文关键字:常工作 工作 after before jquery 不能      更新时间:2023-09-26

实际上我正在尝试在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>');
            }​

请注意,您正在使用这些函数操作 DOM,而不仅仅是连接一些包含 HTML 的字符串。不能追加</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>');

您是否尝试过使用wrap而不是beforeafter