redshot redshot - 4 months ago 11
CSS Question

How to copy the last class of element to another element in jQuery?

I am trying to copy the last class of each element to their parent li element in jQuery.

This is the current markup:

<nav class="menu-uber-main-menu-container">

<ul class="menu">

<li class="menu-item menu-item-type-post_type menu-item-object-page page_item">
<a href="#" class="">
<i class="fa fa-shopping-cart fa-lg menu-basket"></i>
<span>Home</span>
</a>
</li>


<li class="menu-item menu-item-type-post_type menu-item-object-page page_item">
<a href="#" class="">
<i class="fa fa-line-chart fa-lg menu-chart"></i>
<span>About</span>
</a>
</li>


<li class="menu-item menu-item-type-post_type menu-item-object-page page_item">
<a href="#" class="">
<i class="fa fa-truck fa-lg menu-truck"></i>
<span>Blog</span>
</a>
</li>


</ul>

</nav>


I want to copy and pass menu-basket, menu-chart, menu-truck to their parent li class="menu-item menu-item-type-post_type menu-item-object-page page_item"

The result should be:


<ul class="menu">

<li class="menu-item menu-item-type-post_type menu-item-object-page page_item menu-basket">
<a href="#" class="">
<i class="fa fa-shopping-cart fa-lg menu-basket"></i>
<span>Home</span>
</a>
</li>


<li class="menu-item menu-item-type-post_type menu-item-object-page page_item menu-chart">
<a href="#" class="">
<i class="fa fa-line-chart fa-lg menu-chart"></i>
<span>About</span>
</a>
</li>


<li class="menu-item menu-item-type-post_type menu-item-object-page page_item menu-truck">
<a href="#" class="">
<i class="fa fa-truck fa-lg menu-truck"></i>
<span>Blog</span>
</a>
</li>


</ul>

</nav>


The code for getting the last class of the element is this:

var lastClass = j('.menu-uber-main-menu-container > .menu > .menu-item > a > .fa').attr('class').split(' ').pop();


How to transfer each last class for each li element associatively?

Answer

you could use .each()

$('.menu-uber-main-menu-container > .menu > li').each(function(){
    var className = $(this).find('.fa').attr('class').split(' ').pop();
    $(this).addClass(className);
});