如何使用jquery获取PreviousAll元素Child类

时间:2017-08-02 05:50:34

标签: javascript jquery

如何使用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来实现这一点。请帮助我解决这个问题。

2 个答案:

答案 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格式。