jQuery提取ul树的一部分
有人能解释我为什么会得到这个吗。我试图做的是根据匹配的jQuery提取ul树的一部分,jquery,html-lists,Jquery,Html Lists,有人能解释我为什么会得到这个吗。我试图做的是根据匹配的将列表树的一部分复制到另一个中 提供了什么?您需要使用clone()方法来避免移动最初找到的节点/元素: $(document).ready(function (e) { var test = "/our-services/" subNav = $('#mainNav ul').find('a[href$="' + test + '"]').parent().clone(true); $('#thing').
将
列表树的一部分复制到另一个
中
提供了什么?您需要使用clone()
方法来避免移动最初找到的节点/元素:
$(document).ready(function (e) {
var test = "/our-services/"
subNav = $('#mainNav ul').find('a[href$="' + test + '"]').parent().clone(true);
$('#thing').html(subNav).wrapInner('<ul/>');
});
$(文档).ready(函数(e){
var test=“/our services/”
subNav=$('#mainNav ul').find('a[href$=“'+test+'”).parent().clone(true);
$('#thing').html(subNav).wrapInner('
');
});
或者,稍微重写一下:
$(document).ready(function (e) {
var test = "/our-services/",
subNav = $('#mainNav ul').find('a[href$="' + test + '"]').parent().clone(true);
subNav.appendTo('#thing').wrap('<ul />');
});
$(文档).ready(函数(e){
var test=“/our services/”,
subNav=$('#mainNav ul').find('a[href$=“'+test+'”).parent().clone(true);
subNav.appendTo(“#thing”).wrap(“
”);
});
参考资料:
您需要使用clone()
方法来避免移动最初找到的节点/元素:
$(document).ready(function (e) {
var test = "/our-services/"
subNav = $('#mainNav ul').find('a[href$="' + test + '"]').parent().clone(true);
$('#thing').html(subNav).wrapInner('<ul/>');
});
$(文档).ready(函数(e){
var test=“/our services/”
subNav=$('#mainNav ul').find('a[href$=“'+test+'”).parent().clone(true);
$('#thing').html(subNav).wrapInner('
');
});
或者,稍微重写一下:
$(document).ready(function (e) {
var test = "/our-services/",
subNav = $('#mainNav ul').find('a[href$="' + test + '"]').parent().clone(true);
subNav.appendTo('#thing').wrap('<ul />');
});
$(文档).ready(函数(e){
var test=“/our services/”,
subNav=$('#mainNav ul').find('a[href$=“'+test+'”).parent().clone(true);
subNav.appendTo(“#thing”).wrap(“
”);
});
参考资料:
有趣的行为!这可能是因为jQuery在幕后做了一些奇怪的事情,因为它希望将
字符串
传递给.html()
方法,但您正在传递一个包裹在jQuery对象中的整个dom节点。看
尝试获取该节点的html内容,并将其传递给.html()
方法,如下所示:
$(document).ready(function (e) {
var test = "/our-services/";
var subNav = $('#mainNav ul').find('a[href$="' + test + '"]').parent();
$('#thing').html(subNav.html()).wrapInner('<ul/>');
});
$(文档).ready(函数(e){
var test=“/our services/”;
var subNav=$('#mainNav ul').find('a[href$=“'+test+'”).parent();
$('#thing').html(subNav.html()).wrapInner('
');
});
编辑
请记住,这将剥离附加到原始节点的任何数据或事件处理程序,根据您的实现,这些行为可能是必需的,也可能不是必需的。如果要保留它们,请使用另一个答案中描述的clone()
方法,但使用clone(true)
而不是默认的clone(false)
另见:
有关.html()方法接受jQuery对象和字符串的原因的说明。有趣的行为!这可能是因为jQuery在幕后做了一些奇怪的事情,因为它希望将字符串
传递给.html()
方法,但您正在传递一个包裹在jQuery对象中的整个dom节点。看
尝试获取该节点的html内容,并将其传递给.html()
方法,如下所示:
$(document).ready(function (e) {
var test = "/our-services/";
var subNav = $('#mainNav ul').find('a[href$="' + test + '"]').parent();
$('#thing').html(subNav.html()).wrapInner('<ul/>');
});
$(文档).ready(函数(e){
var test=“/our services/”;
var subNav=$('#mainNav ul').find('a[href$=“'+test+'”).parent();
$('#thing').html(subNav.html()).wrapInner('
');
});
编辑
请记住,这将剥离附加到原始节点的任何数据或事件处理程序,根据您的实现,这些行为可能是必需的,也可能不是必需的。如果要保留它们,请使用另一个答案中描述的clone()
方法,但使用clone(true)
而不是默认的clone(false)
另见:
有关.html()方法接受jQuery对象和字符串的原因的说明。您可能应该在subNav
上使用,在您的示例中,subNav
是树的一部分,您可能应该在subNav
上使用,subNav
是树的一部分,与post相同,XD。您只需使用$('#thing').html(subNav.clone()).wrapInner('
');同样的帖子,XD。您只需使用$('#thing').html(subNav.clone()).wrapInner('
');