2014-08-27 76 views
1

我想控制一些使用類名的元素的css規則,例如可能有一個'class parameter'像'setwidth200','setwidth'後的數字可能是任何數字。有將是對我做這個,如果我知道元素只能有一個類沒有問題,但目前它可能看起來像這樣:Jquery獲取元素的具體類型

<div class="main-client-block selector righted setwidth200"></div> 

有沒有辦法從元素列表中只得到特定的類班?

+1

「得到」如何?目前尚不清楚你想在這裏做什麼。 – 2014-08-27 08:31:28

+1

「setwidth之後的數字」可以是任何數字「不是使用CSS的好方法(它不會使用CSS,而只是將class屬性用作數據存儲)。如果你想調整代碼的寬度,可以使用屬性,如'data-width =「200」'等等。 – 2014-08-27 08:33:54

+0

好吧,我會盡量更清楚,我可以找到具有特定類的元素,但後來我需要在類名中設置切片號,點是 - 我不知道如何得到這個類名,因爲。 attr('class')將返回完整的類列表。 – Dazvolt 2014-08-27 08:34:36

回答

1

移動評論回答:

有「數後 'setwidth' 可以是任何數量的「不是使用CSS的好方法(它不會使用CSS,而只是使用類屬性作爲數據torage)。

使用屬性,如data-width="200"等,而不是如果你想調整/獲取代碼的寬度值。

你可以用.data(假定數據前綴)或.attr('data-...)`

var width = ~~$element.data('width'); 

var width = ~~$element.attr('data-width'); 

注~~是一個非常快速的方式將字符串轉換爲整數獲取它們。

1

是的。只需將id添加到您的div然後:

<div id="someId" class="main-client-block selector righted setwidth200"></div> 

var classes = jQuery('#someId').attr('class').split(' '); 

而且您將獲得該元素的類的數組。然後你可以得到任何課程。另外你可能想要做的是檢查數組是否包含你的「類」,然後分割爲屬性和值來應用樣式。

但是,你爲什麼不簡單地使用CSS呢?

+0

我可以使用CSS,但頁面上有太多元素,沒有定位網格,我厭倦了一遍又一遍地添加CSS類。謝謝你的想法。 – Dazvolt 2014-08-27 08:43:20

1

你可以通過遍歷所有類並檢查是否設置了類似setwidth的東西。像這樣的東西會做:

的JavaScript:

$("div").each(function() { 
    var check = "setwidth"; 
    var classes = $(this).attr("class").split(/\s+/); 
    var width = 0; 
    $.each(classes, function (index, item) { 
     if (item.indexOf(check) === 0) 
      width = parseInt(item.substr(check.length), 10); 
    }); 

    console.log(width); 
}); 

FIDDLE