2010-12-21 259 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位数字。如果你得到了逻辑,你可以把它变成任何形式