2017-08-02 74 views
2

如何使用jquery獲取之前的所有元素類列表。如何獲取PreviousAll元素使用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」 標識的所有類名。

而我正在嘗試下面的東西。

var a = $("#getclass").prevAll().find('.class').attr('class'); 

我如何使用jquery.Anyone來幫助我解決這個問題。

回答

4

您的代碼正在尋找類的元素。

可以代替得到previous siblings所有children,然後使用map功能通過返回className屬性將其轉換爲只類名稱的數組。

實施例:

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>

+0

謝謝#H77工作很好。 –

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); 
    }); 

是CLAS的陣列您的名字,你也可以把它作爲CSV。

+1

嗨#NMathur它也可以正常工作。謝謝你試圖幫助我... –

+0

希望這可以幫助其他人 – NMathur

+0

是的,答案是非常好的... –