【发布时间】:2012-12-26 00:14:32
【问题描述】:
您好,我在使用 JQuery 的 .append .prepend 方法时遇到问题,我非常了解这些方法,但是当我尝试这样的代码时出现了一个奇怪的故障:
$("#nashgraphics-menu ul li a.toplevel-a")
.prepend('<span class="main-navigation-button-left"></span><span class="main-navigation-button-body"><h1>');
$("#nashgraphics-menu ul li a.toplevel-a")
.append('</h1></span><span class="main-navigation-dropdown-button-right"></span>');
它应该可以正常工作,但不幸的是它没有,我想知道为什么
注意:我说的是“链接”文本,这些标签应该包含该文本,但它不会
代码应该输出这个:
<span class="main-navigation-button-left"></span>
<span class="main-navigation-button-body"><h1>Link</h1></span>
<span class="main-navigation-dropdown-button-right"></span>
但它是这样的:
<span class="main-navigation-button-left"></span>
<span class="main-navigation-button-body"><h1></h1></span>Link<span class="main-navigation-dropdown-button-right"></span>
文本“链接”应该在标签内
这是我在 Wordpress 中使用的全部代码
;(function($){
$.fn.nashgraphics_menu = function(){
$("#nashgraphics-menu ul li").each(function(index){
$('#nashgraphics-menu ul li').addClass('toplevel-nochild');
$('#nashgraphics-menu ul li ul li').removeClass('toplevel-nochild').addClass('nochild');
$('#nashgraphics-menu ul li:has(ul)').removeClass('toplevel-nochild nochild').addClass('toplevel');
$('#nashgraphics-menu ul li ul li:has(ul)').removeClass('toplevel nochild').addClass('haschild');
$('#nashgraphics-menu ul li a').addClass('toplevel-nochild-a');
$('#nashgraphics-menu ul li ul li a').removeClass('toplevel-nochild-a').addClass('nochild-a');
$('#nashgraphics-menu ul li:has(ul) > a').removeClass('toplevel-nochild-a nochild-a').addClass('toplevel-a');
$('#nashgraphics-menu ul li ul li:has(ul) > a').removeClass('toplevel-a nochild-a').addClass('haschild-a');
});
$("#nashgraphics-menu ul li a.toplevel-a").prepend('<span class="main-navigation-button-left"></span><span class="main-navigation-button-body"><h1>');
$("#nashgraphics-menu ul li a.toplevel-a").append('</h1></span><span class="main-navigation-dropdown-button-right"></span>');
$('#nashgraphics-menu ul li a.haschild-a').append(' »');
};
})(jQuery);
【问题讨论】:
-
您正在滥用 prepend 和 append 方法,请参阅 DOC。顺便说一句,jquery API 得到一个 .wrap() 方法。
-
是的,但我也试过这个,这也是一个好主意,但我找不到这个 .wrap() 的解决方案,也可以在我的代码上工作,除非我知道如何选择里面的文本 标签并包装它我已经尝试过这个但没有用 $("#nashgraphics-menu ul li a.toplevel-a").text().wrap('content content');跨度>
标签: jquery jquery-plugins jquery-selectors append prepend