首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery -将类从子元素添加到父元素

jQuery -将类从子元素添加到父元素
EN

Stack Overflow用户
提问于 2014-01-05 03:45:19
回答 2查看 1.1K关注 0票数 1

我试图将每个独立锚点的不同类添加到它们的父<li>标记中。一般的HTML代码如下所示:

代码语言:javascript
运行
复制
<ul class="list">
  <li>
    <div>Title Text</div>
    <span class="tag"><a href="#" class="Class1">Class1 Link</a>, <a href="#" class="Class2">Class2 Link</a>, <a href="#" class="Class3">Class3 Link</a></span>
  </li>
  <li>
    <div>Title Text</div>
    <span class="tag"><a href="#" class="Class4">Class4 Link</a>, <a href="#" class="Class5">Class5 Link</a>, <a href="#" class="Class6">Class6 Link</a></span>
  </li>
</ul>

最近的jQuery脚本在一定程度上起作用,但它只是抓住遇到的第一个锚类,并将其添加到无序列表中的每个<li>标记中。

代码语言:javascript
运行
复制
$(window).load(function () {
    $('span.tag a').each(function(){
        var tagClass = $(this).attr("class");
        $('span.tag a').closest('li').addClass(tagClass);
});

任何帮助,使其正常工作,将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-05 03:49:38

您应该使用$(this)而不是$('span.tag a'),后者选择所有a元素,然后选择所有父li元素。还可以使用.addClass()回调函数:

代码语言:javascript
运行
复制
$('ul.list > li').addClass(function() {
    return $('span.tag a[class]', this).map(function() {
        return this.className;
    }).get().join(' ');
});

http://jsfiddle.net/UXSa7/

票数 1
EN

Stack Overflow用户

发布于 2014-01-05 03:47:18

您应该使用this引用为该实例找到正确的父实例,而不是再次选择它们,这将导致jQuery接受第一个a标记父li,然后获取该元素的类名。

代码语言:javascript
运行
复制
$(window).load(function () {
    $('span.tag a').each(function(){
        var tagClass = $(this).attr("class");
        $(this).closest('li').addClass(tagClass);
    });
});

您还可以在DOM准备就绪时,而不是在加载所有资产时,使用$(function(){而不是$(window).load(function () {来运行此操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20929802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档