实际上我试图在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 is here
这是我的剧本:
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>');
}
答案 0 :(得分:4)
请注意,您正在使用这些函数操作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>');
答案 1 :(得分:3)
您是否尝试过使用wrap代替before
和after
?