如何获取.getClass
(白色,蓝色等)的内容并将其添加为其父级li代码的类?
我有以下html结构:
<div class="main">
<ul>
<li class="even">
<div class="content">
<div class="getClass">white</div>
</div>
</li>
<li class="odd">
<div class="content">
<div class="getClass">red</div>
</div>
</li>
<li class="even">
<div class="content">
<div class="getClass">blue</div>
</div>
</li>
<li class="odd">
<div class="content">
<div class="getClass">black</div>
</div>
</li>
</ul>
</div>
我想出了这个:
var str = $( ".getClass" ).text();
下一步是什么?
干杯
答案 0 :(得分:4)
选择要修改的元素,使用.each
创建循环,然后使用.text()
获取每个元素的内容:
$('li').each(function (i, el) {
var className = $(el).find('#getClass').text();
$(el).addClass(className)
});
但是您的代码实际上是无效的HTML,您有重复的id
属性。因此,请使用类,您几乎不需要id
答案 1 :(得分:3)
首先,您的HTML无效。您不能在文档中使用相同id
的多个元素。您应该使用class
来对元素进行分组。从那里,您可以选择li
元素,并为addClass()
方法提供一个函数,以返回从子元素的text()
生成的必需字符串。试试这个:
$('li').addClass(function() {
return $(this).find('.getClass').text().trim();
});
$('li').addClass(function() {
return $(this).find('.getClass').text().trim();
});
.white {
color: #CCC;
}
.red {
color: red;
}
.blue {
color: blue;
}
.black {
color: black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="main">
<ul>
<li class="even">
<div class="content">
<div class="getClass">white</div>
</div>
</li>
<li class="odd">
<div class="content">
<div class="getClass">red</div>
</div>
</li>
<li class="even">
<div class="content">
<div class="getClass">blue</div>
</div>
</li>
<li class="odd">
<div class="content">
<div class="getClass">black</div>
</div>
</li>
</ul>
</div>
答案 2 :(得分:0)
您可以使用jQuery方法parent()和addClass()
来实现此目的