繁体   English   中英

从li内的div获取类并添加到同一个li

[英]Get class from div inside an li and add to same li

从li内的div获取类并添加到相同的li。

列表项与此类似:

<li class="original">
<div id="one" class="text">foo</div>
<div id="two" class="photo">foo</div>
<div id="three" class="video">foo</div>
</li>

<li class="original">
<div id="one" class="text">foo2</div>
<div id="two" class="photo">foo2</div>
<div id="three" class="video">foo2</div>
</li>

...

我需要从列表项的每个div中获取ID为“ 3”的类,并将其添加到父级li的类中。 因此,代码运行后,列表将如下所示:

<li class="original video">
<div id="one" class="text">foo</div>
<div id="two" class="photo">foo</div>
<div id="three" class="video">foo</div>
</li>

<li class="original text">
<div id="one" class="video">foo2</div>
<div id="two" class="photo">foo2</div>
<div id="three" class="text">foo2</div>
</li>

我尝试过类似的操作,但是它只会更新第一个列表项:

$("#three").each(function(i) { 
    var newclass = $(this).attr("class");                   
   $(this).parent().addClass(newclass);
});

在此先感谢您的帮助!

如果您坚持使用重复ID

 $('[id="three"]').each(function(){  
     $(this).parent().addClass( this.className);

})

您不能有多个具有相同ID的元素。 在这种情况下,每个jquery都在做正确的事情并找到第一个ID,然后停止。 您可以改用类来解决此问题:

<li class="original video"><div class="text one">foo</div></li>
<li><div class="photo two">foo</div></li>
<li><div class="video three">foo</div></li>

<li class="original"><div class="video one">foo2</div></li>
<li><div class="text two">foo2</div></li>
<li><div class="photo three">foo2</div></li>

然后是jQuery:

$(".three").each(function(i) { 
var newclass = $(this).attr("class");                   
$(this).parent().addClass(newclass);
});

这是您可能要看的另一种解决方案: 演示

这是JS代码(解决了上面提到的人破碎的HTML问题之后,但保留了重复的ID)

$(document).ready(function(){

    $('.original').each(function(i) {
    var div = $(this).find('div').eq(2);
    var newclass = $(div).attr("class");                   
   $(this).addClass(newclass);
});
    });​

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM