Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 克隆每个类到下一个类的最近跨度 演示: 问题:_Jquery - Fatal编程技术网

Jquery 克隆每个类到下一个类的最近跨度 演示: 问题:

Jquery 克隆每个类到下一个类的最近跨度 演示: 问题:,jquery,Jquery,我想克隆ul.waSlideMenu菜单上方(最近的?)的li.has-children span,然后在ul.waSlideMenu菜单内,第一个孩子有一个类li.waSlideMenu回来,这就是我想要克隆的地方。现在我所能做的就是克隆它们中的每一个,然后把它们放进这个区域。我在这方面很差劲 错误: <ul class="waSlideMenu-menu waSlideMenu-inheritedmenu"> <li class="waS

我想克隆
ul.waSlideMenu菜单上方(最近的?)的
li.has-children span
,然后在
ul.waSlideMenu菜单内,第一个孩子有一个类
li.waSlideMenu回来
,这就是我想要克隆的地方。现在我所能做的就是克隆它们中的每一个,然后把它们放进这个区域。我在这方面很差劲

错误:

<ul class="waSlideMenu-menu waSlideMenu-inheritedmenu">
   <li class="waSlideMenu-back"><a href="#">Up / <span>About Us</span><span>About Us Child</span><span>Oahu<span></span></span><span></span><span>Australia</span><span>California</span><span>Indian Ocean</span><span>Indonesia</span><span>Atlantic Ocean</span><span>Europe</span><span>South Africa</span><span>Canary Islands</span></a></li>

我这里有一个脚本:

$('.waSlideMenu-menu').closest('.has-children').find('span').clone().appendTo($('.waSlideMenu-back').children());
它所做的是克隆所有跨度,并将它们全部放回
.waslide菜单中。下面是生成的这个混乱的html:

错误:

<ul class="waSlideMenu-menu waSlideMenu-inheritedmenu">
   <li class="waSlideMenu-back"><a href="#">Up / <span>About Us</span><span>About Us Child</span><span>Oahu<span></span></span><span></span><span>Australia</span><span>California</span><span>Indian Ocean</span><span>Indonesia</span><span>Atlantic Ocean</span><span>Europe</span><span>South Africa</span><span>Canary Islands</span></a></li>
我想要的是:

<ul class="waSlideMenu-menu waSlideMenu-inheritedmenu">
    <li class="waSlideMenu-back">
    <a href="#">
        Up / <span>The text of the Span inside the previous .has-children</span>
    </a>
    </li>

虽然您的HTML在语义上不正确,但我已经在
li
的第一个子项上添加了父类别名称。那是你要找的吗

我尝试了更干净的方法(与演示不同),它对类选择器的依赖性更小。它会更快

var menu = $('#nav ul');
$('a', menu).on('click', function(){
  var clickedText = $(this).find('span').text();
  var parentDirAnchor = $(this).next('ul').children().first().find('a');
  /*
   one can use either of below approach, dont know which is faster ?
   $(this).next('ul').children(':first-child').find('a');
   $(this).siblings('ul').children('li:first').children('a');
  */
  parentDirAnchor.html(' Up / <b>' + clickedText + '</b>');
var菜单=$('#nav ul');
$('a',菜单)。在('click',function()上{
var clickedText=$(this.find('span').text();
var parentDirAnchor=$(this).next('ul').children().first().find('a');
/*
一个人可以使用下面的方法之一,不知道哪个更快?
$(this).next('ul').children(':first child').find('a');
$(this).兄弟姐妹('ul')。子女('li:first')。子女('a');
*/
parentDirAnchor.html('Up/'+clickedText+'');
}))


有点困惑。在演示中,没有具有
ul
的类,并且问题的
错误部分中存在无效标记。两个相邻的跨度正在闭合。请重新检查问题ul.waSlideMenu-menu,而不是ul类。错误的部分是错误的,这是错误的一部分。ThanksI做了,但是因为它在元素之前,所以它就像一个父元素,但它是父元素之前的子元素。查看问题中的垃圾箱,单击一些东西,您将看到我正在尝试做什么您在父级和子级ul中有
waslide菜单
。你能在JSFIDLE上做一份干净的ul li菜单吗?是的,在你8小时前给我发邮件后我睡着了。非常非常感谢你,就是这样。非常非常感谢!