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

标签 javascript jquery html css

我正在尝试将每个单独 anchor 的不同类添加到它们的父级 <li>标签。一般的 HTML 代码如下所示:

<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 脚本在一定程度上起作用,但它只是捕获它遇到的第一个 anchor 类并将其添加到每个 <li> 中。无序列表中的标记。

$(window).load(function () {
    $('span.tag a').each(function(){
        var tagClass = $(this).attr("class");
        $('span.tag a').closest('li').addClass(tagClass);
});

如果您能帮助我们正常工作,我们将不胜感激。

最佳答案

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

$('ul.list > li').addClass(function() {
    return $('span.tag a[class]', this).map(function() {
        return this.className;
    }).get().join(' ');
});

http://jsfiddle.net/UXSa7/

关于javascript - jQuery - 将类从子元素添加到父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20929802/

相关文章:

javascript - Angular 2 中流的更改检测?

javascript - 单击全高元素到空白区域以添加类

javascript - Bootstrap - 在模式内的弹出窗口内形成

php - 如何在 Codeigniter 中弹出验证表单的消息?

html - 网站的一部分不适合布局

javascript - 语义 UI 弹出窗口 - 在初始化之前更改 HTML

javascript - 如何将对象引用传递给指令?

javascript - 如何解析文本

javascript - 如何使用 javascript 检测 textarea 值何时更改?

html - 具有特定 HTML 标记的多行 Jlabel