【问题标题】:How to copy the last class of element to another element in jQuery?如何将最后一类元素复制到jQuery中的另一个元素?
【发布时间】:2016-12-07 23:01:48
【问题描述】:

我正在尝试将每个元素的最后一个类复制到 jQuery 中它们的父 li 元素。

这是当前标记:

<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>

我想将 menu-basket、menu-chart、menu-truck 复制并传递给它们的父级 li class="menu-item menu-item-type-post_type menu-item-object-page page_item"

结果应该是:

    <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>

获取元素最后一个类的代码是这样的:

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

如何关联地传输每个 li 元素的最后一个类?

【问题讨论】:

  • 获取源中的最后一个类是不是有点脆弱?
  • 你试过.children().parent().addClass()吗?
  • 元素上没有“最后一个类”这样的东西。它们以任意顺序存储,除非您想开始将 class 属性值作为字符串进行破解 - 这不是一个好主意。
  • 我同意@Rory McCrossan 的观点。如果我是你,我会在你抓取的类中搜索术语“菜单”,而不是只抓取元素的最后一个类,因为我认为这不会是一致的。

标签: javascript jquery html css wordpress


【解决方案1】:

你可以使用.each()

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

【讨论】:

  • 哈哈!打败我
猜你喜欢
  • 2010-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-21
  • 2011-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多