如何使用jquery获取之前的所有元素类列表。
以下是示例。
<div>
<div>
<span class="one">one</span>
</div>
<div>
<span class="two">one</span>
</div>
<div>
<span class="three">one</span>
</div>
<div id="getclass">getclass</div>
<div>
<span class="four">one</span>
</div>
</div>
我希望上面的所有课程名称都是“ getclass ”id。
我正在尝试下面的事情。
var a = $("#getclass").prevAll().find('.class').attr('class');
我怎样才能使用jquery来实现这一点。请帮助我解决这个问题。
答案 0 :(得分:4)
您的代码正在查找类 class 的元素。
您可以获取children的所有previous siblings,然后使用map
函数通过返回className
属性将其转换为只包含类名的数组。 / p>
示例:
var a = $("#getclass")
.prevAll()
.children("span")
.get()
.map(function(x) {
return x.className;
});
console.log(a);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<div>
<span class="one">one</span>
</div>
<div>
<span class="two">one</span>
</div>
<div>
<span class="three">one</span>
</div>
<div id="getclass">getclass</div>
<div>
<span class="four">one</span>
</div>
</div>
答案 1 :(得分:1)
您可以通过循环读取每个元素:
<script type="text/javascript">
$(function () {
var classes = [];
$("#getclass").prevAll().each(function () {
classes.push($(this).find('span').attr('class'));
});
var classNames = classes.join(",");
alert(classNames);
});
类是一个类名称数组,您也可以将其作为CSV格式。