2010-12-21 265 views
2

我正在嘗試使用jQuery將高度傳遞給colorbox。這樣做,唯一可以想到定義高度的方法是通過鏈接「類」。所以我想弄清楚如何從字符串中獲取數字;例如;jQuery從字符串中獲取數字

class =「height_900」;我希望它能得到數字'900'。

這可能與jQuery?

更多信息:好的..所以這就是我想要實現的。

我正在爲colorbox(lightbox的變體)創建一個Wordpress簡碼。 Colorbox通過jQuery設置其高度和寬度。

WordPress的短代碼包含屬性的'高度'&'寬度',允許用戶手動設置他們的願望。問題是,我找不到將這些PHP變量傳遞給colorbox jQuery的方法。

我能想出的最佳解決方案是擁有一個如下所示的類:height_ $ height;例如height_450。然後我想通過jQuery獲取數字,然後將其用作特定顏色框的高度。寬度相同。

+0

可能有更好的方法來做到這一點。 「將高度傳遞給彩盒」是什麼意思?你使用的是彩盒插件嗎?如果是這樣,我想你可以通過一個選項通過高度。另一種可能性是通過data()函數將高度附加到元素上。 – MikeWyatt 2010-12-21 18:54:11

+0

直截了當的JavaScript。 `split()` – dnagirl 2010-12-21 18:54:25

+0

這是一個簡單的解析問題,它並不真正屬於jQuery本身。 jQuery是一個操作DOM元素的庫。你會使用JavaScript解析。 – SRM 2010-12-21 18:54:48

回答

8

試試這個:

parseInt(className.split('_')[1]); 
3
$(<Selector>).attr('class').split('_')[1]; 

注意我不做任何錯誤檢查。你試圖做什麼(更明確地說),有一個更好的方法。

2

首先在回答你的問題。讓jQuery爲你工作。它有一個.height()方法,它不僅會返回框的當前高度,但允許你設置它,以及(如$("#someID").height(200)

其次:CSS應該用來形容事物,不是一個事物的屬性。如果您想稍後再回來並將元素的高度改爲700而不是900,該怎麼辦?你要麼必須離開他們名不副實的,所以你必須:

.height_900 { 
    height: 700px; 
} 

- 或 - 你必須處處更改類名你使用它。這打破了CSS的目的。

取而代之的是按照它應該包含的內容命名你的班級。例如:.menuItem,它允許任何人知道他們將改變你的菜單項的屬性。

0

晚的答案,但如果你知道的字符數你需要,我會use .slice() instead

"height_900".slice(-3); 

這會給你字符串中的最後3個字符。

如果你想要結果是一個數字,你可以使用一元運算符+進行轉換。

+("height_900".slice(-3)); 
1

下面是使用parseInt函數()的好方法

if(Stringname.substr(-3)==parseInt(Stringname.substr(-3))) 
var b=Stringname.substr(-3); 
else if(Stringname.substr(-2)==parseInt(Stringname.substr(-2))) 
var b=Stringname.substr(-2); 
else 
var b=Stringname.substr(-1); 

它檢查和給出正確的答案,並將其存儲在變量b爲1位數字和高達3位數字。如果你得到了邏輯,你可以把它變成任何形式